boostライブラリのビルドの仕方 in VC

boost C++ Libraries(以下単にboost)は便利ではあるのですが、 いかんせんビルドが面倒です。VCのGUIな開発環境に慣れきっていると、痛い目を見ます。 このページが、少しでも多くの方のboostビルドの手助けになるように願います。

必要なもの

boostのホームページから、boostライブラリ本体と、 bjamというツールをダウンロードする必要があります。 いずれも「Download」のページにあります。 まあ、最新のバージョンを落としておけば問題ないでしょう。

bjamは、ソースコードと実行形式の二通り用意してあります。 右の方に「Source」と書いてあるものはソースコードです。 実行形式をダウンロードしたほうが余計な手間がかからなくてすむので、そちらをダウンロードしましょう。 そして、bjamを適当なパスの通っているフォルダに置きます。 よく分からない場合はboostのルートフォルダに置けばいいでしょう。

ビルドの前準備・環境変数設定

コマンドプロンプト(9x系ではMS-DOSプロンプト)を開いて、以下のコマンドうちどれかを打ち込みます。

もしVCを標準でないディレクトリにインストールしているのでしたら、 vcvars32.batを探し出してそれのパスを入力してください。

STLportの設定

STLportを使用している方は、それ用の設定をする必要があります。 以下の環境変数を適当に設定してください。

STLPORT_PATH

STLport-*.**.*(*はバージョン番号)のディレクトリのあるディレクトリへのパスを指定します。 (STLportのルートのひとつ上のディレクトリです) 以下のすべてのパスに言えることですが、ディレクトリパスの末尾に\はいりません。

STLPORT_****_PATH

あるバージョンのSTLportのルートディレクトリを指定します(****はバージョン番号)。 自分の使いたい最新のSTLportの分だけ指定しておけばいいでしょう。

STLPORT_VERSION

使いたいSTLportのバージョンを指定します。 一応デフォルトで最新バージョン値を設定してくれはしますが、 すでに時代遅れのバージョンとなっていることがままあるので必ず自分で指定しましょう。

STLport4.6.2をこんな感じでインストールしてある私の場合の設定を書きます。

このようにコマンドを入力します。

set STLPORT_PATH=c:\lib
set STLPORT_4.6.2_PATH=c:\lib\STLport-4.6.2
set STLPORT_VERSION=4.6.2

bjamの実行

いよいよビルドです。boostのルートディレクトリに移動して、bjamを実行します。

bjam -sTOOLS=vc-7_1-stlport stage

これはコンパイラをvc7.1で、stlportを使用してコンパイルすることを示しています。 stageはビルド後のライブラリなどを一箇所にまとめることを示しています。 例で、「vc-7_1-stlport」となっている部分には、例えば以下のような文字列が入ります。

他にもいろいろありますが、他のコンパイラについては Getting Startedを見るのが早いと思います。

また、Getting Startedの各種コンパイラごとの設定は必ず見ておきましょう。 英語ですがそれほど難しくありませんので。中には結構重要な設定も含まれています。

最後に、私が実際にビルドしたときの例を挙げておきます。

bjam -sTOOLS=vc-7_1-stlport "-sBUILD=release debug <runtime-link>static/dynamic <threading>single/multi <native-wchar_t>on" stage

パスを通す

ビルドに成功すると、stage/libディレクトリにビルドした.libファイルがいっぱい出てくると思います。 VC6なら「ツール」→「オプション」→「ディレクトリ」、 VC7/7.1なら 「ツール」→「オプション」→「プロジェクト」→「VC++ディレクトリ」を開いて、 インクルードディレクトリにboostのルートディレクトリ、ライブラリファイルのディレクトリにstage/libを指定しましょう。

これで、使えるようになるはずです。たぶん。