Boostのビルド方法の解説です。 オフィシャルな解説は Boost Getting Started にあります。
Linux や FreeBSD, Cygwin などの環境用には、configure スクリプトが提供されています。 Boost を展開したディレクトリで
./configure make make install
とコマンド実行すると、ビルドおよびインストールが行われます。詳細なオプションについては
./configure --help
を参照してください。
bjam というツールを使います。以下の説明をご参照下さい。
boostのビルドにはbjamというツールを利用します。Boost C++ Libraries: File List から boost-jam をダウンロードして、コマンドラインから実行できるように、 適当な場所に置いておいて下さい。Windows用は bjam-3.1.16-1-ntx86.zip などという名前でバイナリ配布されています。 特に理由がなければ、boost を入れたディレクトリに bjam を入れてしまうのでも問題ないと思います。
入れ終わったら、コマンドプロンプト等を開いて、
cd c:\lib\boost
と打ち込んでboostのルートディレクトリへ移動します。 (例によって、c:\lib\boostへboostを入れたと仮定しています。) 以下の説明で「コマンドを打ち込む」と書いてあるところでは、 指定のコマンドをそのプロンプトに入力して、Enterキーを押してください。
ビルドにはPython処理系に付属するヘッダファイル等が必要です。 ActivePython などを導入して、適切にパスを通して置いてください。 Boost.Pyhtonを使わない方は何もしなくてOKです。
ビルドの際にコンパイラをコマンドラインから呼び出す必要があるため、 ここでその設定を行います。普段からコマンドラインで開発をされている方には 特に特別な設定は必要ありませんので、この章は読み飛ばしてください。
vcvars32.bat というバッチファイルを実行します。 VC++をデフォルトの場所にインストールしてあるならば、VC6 の場合
"c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
VC7 の場合
"C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin\vcvars32.bat"
と打ち込んで下さい。別の場所に入れた人は、vcvars32.bat という名前のファイルを頑張って探してそのフルパスを入れて下さい。 ただし、STLPort を使っている方は、 ビルドの際に VCVARS32.BAT をそのまま使うと上手く行きません。INCLUDE パスやライブラリパスの最初に、STLPort のあるディレクトリを指定する必要があります。VCVARS32.BATの最後の方を、 例えば次のような感じに書き換えて使います。
set INCLUDE=C:\STLport-4.5.3\stlport;%MSVCDir%\ATL\INCLUDE;
%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%INCLUDE%
set LIB=C:\STLport-4.5.3\lib;%MSVCDir%\LIB;
%MSVCDir%\MFC\LIB;%LIB%
set STLPORT_PATH=C:\STLport-4.5.3\stlport
コンパイラをインストールしたディレクトリを環境変数で指定する必要があります。 例えばc:\digitalmars\dmにインストール済みなら、以下のように打ち込みます。
set DMC_ROOT="c:\digitalmars\dm"
コンパイラの実行ファイル (Borlandなら、bcc32。gccなら、g++) にパスが通っていれば大丈夫なようです。例えば C++BuilderX 用にビルドする場合には、インストールした場所に応じて適切に
set PATH="c:\borland\CppBuilderX\bin";%PATH%
のような感じで打ち込んでおくと、パスが通ります。
次のように打ちます。
bjam --toolset=msvc link=static,shared release debug stage
--toolsetには、
Boostを使えるようにしたいC++処理系の名前を入れます。代表的なものは以下の通り。
コンパイラのバージョン等は、基本的には入れなくても自動検出してくれます。
バージョン検出がうまくいってないように見えるときは、--toolset=msvc-8_0
のように明示指定もできます。
link=static で、Boost を静的リンクライブラリ(.lib, .a)としてビルドします。 link=shared では共有ライブラリ(.dll, .so)になります。 link=static,shared で両方ビルドします。省略時のデフォルトは shared です。 release オプションを指定するとリリースビルド、debug オプションを指定するとデバッグビルド、 両方指定で両方をビルドします。 最後の stage オプションによって、できたライブラリファイルが (boostのフォルダ)\stage\lib にまとめられます。
その他のtoolsetやビルドオプションについて詳しくは、Getting Started をご覧下さい。
しばらく待っているとビルドが完了します。
ビルドされたライブラリは、(boostのフォルダ)\stage\lib に配置されています。
名前が libboost_*** となっているものは、 それをリンクすれば単体で使える実行ファイルが出来るスタティックライブラリで、 boost_*** は実行時にDLLが必要となるライブラリです。また更に、 リリース用デバッグ用、マルチスレッド用シングルスレッド用、 など様々なバージョンに分かれています。命名規則についての詳細は こちら にあります。
各コンパイラの設定で、(boostのフォルダ)
に#includeパスを、(boostのフォルダ)\stage\lib
にライブラリのパスを通しておく必要があります。
あとは、ビルドが済んでいると Visual C++やBorland系のコンパイラでは、 Boost のヘッダが#includeされると自動で必要な Boost のライブラリをリンクしてくれるようになります。 その他の環境では、(5.成果物)の箇所に出来たライブラリファイルを、 必要なものを使用時にリンク指定して使います。