夏休みなのでbjam始めてみます 3日目

0xの使い方やライブラリ回りは、プロのbjammerことid:Flast先生に教えてもらいました。

複数のソースから1つの実行ファイルを作りたい

単に依存関係を並べればいいようです。

Jamroot:

exe a : a.cpp b.cpp ;
$ $BOOST_ROOT/bjam release
...found 13 targets...
...updating 6 targets...
common.mkdir bin
common.mkdir bin/darwin-4.6
common.mkdir bin/darwin-4.6/release
darwin.compile.c++ bin/darwin-4.6/release/a.o
darwin.compile.c++ bin/darwin-4.6/release/b.o
darwin.link bin/darwin-4.6/release/a
...updated 6 targets...

システムに入ってるライブラリを使いたい

requirementsの所にで名前を教えてあげればいいようです。ただし、先頭のlibはいりません(libz→z、libpng→png)。システム標準でない場所にライブラリが入っている場合はで場所を教えてあげます。

Jamroot:

lib z : : <name>z <search>/opt/local/lib : : <include>/opt/local/include ;
exe a : a.cpp z ;

a.cpp

#include <iostream>
#include <zlib.h>

int main() { std::cout << zlibVersion() << '\n'; return 0; }
$ $BOOST_ROOT/bjam release
...found 11 targets...
...updating 5 targets...
common.mkdir bin
common.mkdir bin/darwin-4.6
common.mkdir bin/darwin-4.6/release
darwin.compile.c++ bin/darwin-4.6/release/a.o
darwin.link bin/darwin-4.6/release/a
...updated 5 targets...
$ ./bin/darwin-4.6/release/a
1.2.5

C++0xを使いたい

projectのrequirementsでオプションを追加してあげればいいようです。

Jamroot:

project : requirements <cxxflags>-std=c++0x ;
exe a : a.cpp ;