bjam を使用してコンパイル
ひとまず、手元の環境だとこれでコンパイルが出来たのでちょっとまとめ。
今回は、gcc を使用して、コンパイルを行います。
☆事前にやっておくこと
とりあえず、コマンドから bjam を呼び出せれば問題ないと思います。
(結構前に設定したからよく覚えてない…)
☆ディレクトリ構成
\test\ │ build.bat │ jamroot.jam │ main.cpp │ project-config.jam │ └―bin ←ここにコンパイル結果が出力される
☆main.cpp
[main.cpp]
#include <iostream> #include <pstade/oven/io.hpp> #include <pstade/oven/counting.hpp> #include <pstade/oven/filtered.hpp> int main(){ std::cout << "hello GCC compiler" << std::endl; namespace oven = pstade::oven; auto is_even = [](int n){ return n % 2 == 0; }; std::cout << (oven::counting(0, 10)|oven::filtered(is_even)) << std::endl; return 0; }
コンパイルを行うソースファイルです。
☆jamroot.jam
[jamroot.jam]
project : requirements"/boost/boost_1_44_0" : requirements "/pstade/pstade" ; exe sample : main.cpp ;
ここでは、include のパスとソースファイルと出力ファイルの設定を行っています。
【sample.exe】という実行ファイルが出力されるように設定。
boost と pstade のパスは、手元の環境に合わせて適当に設定してください。
☆project-config.jam
[project-config.jam]
using gcc : 4.5.0 : C:/MinGW/bin/g++.exe -std=gnu++0x ;
ここでは、toolset に渡す gcc の設定を行っています。
bjam toolset=gcc ← こいつ
☆build.bat
set BOOST_BUILD_PATH=D:/06010080/home/work/software/lib/boost/boost_1_44_0/tools/build/v2 bjam --toolset=gcc bin\gcc-mingw-4.5.0\debug\sample.exe
環境パスの【BOOST_BUILD_PATH】を設定しなければいけないので、バッチファイルで書きました。
【BOOST_BUILD_PATH】が設定されていれば、コマンドから直接叩いても問題ないと思います。
☆実行
test>build.bat test>set BOOST_BUILD_PATH=/boost/boost_1_44_0/tools/build/v2 test>bjam --toolset=gcc ...patience... ...patience... ...patience... ...found 2662 targets... test>bin\gcc-mingw-4.5.0\debug\sample.exe hello GCC compiler {0,2,4,6,8}
こんな感じで、gcc でコンパイルする事が出来ました。
初期設定の辺りが、かなりうる覚えなのでこれだけだと動かないかも…。
設定がちょっとややこしいですが、gcc と msvc を切り替えてコンパイルするのがすごく楽です。
単体テストなんかも出来るみたいなので結構便利そうです。
[参照]
http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html
http://d.hatena.ne.jp/faith_and_brave/20100908/1283917408