Boost C++ライブラリのビルドとインストール

Visual C++でBoost C++ライブラリをビルドする。

はじめに

ここではVisual C++ 2008とbjamを用いてBoost C++ライブラリをビルドする方法を説明します。

Boost C++ライブラリは複数のライブラリで構成されています。ヘッダファイルだけで構成されているライブラリを使用する場合は、ライブラリをビルドする必要はありません。しかし、FilesystemやIOStreams、Regex、Threadなどのライブラリを利用するときは、ライブラリをビルドする必要があります。boost-jamは、Boost C++ライブラリをビルドするためのツールです。

ダウンロード

SourceForge.netからBoostのソースコードとboost-jamのバイナリファイルをダウンロードします。2008年8月31日現在、Boostの最新版は1.36.0、boost-jamの最新版は3.1.16なので、boost_1_36_0.zipとboost-jam-3.1.16-1-ntx86.zipをダウンロードします。

ダウンロードしたファイルを適当な場所に展開(解凍)します。boost_1_36_0.zipを展開すると出てくるboost_1_36_0という名前のフォルダ(boostフォルダやdocフォルダ、boost-build.jamファイルなどが入っているフォルダ)を、ここではBoostのルートフォルダと呼びます。

boost-jamで必要なファイルはbjam.exeだけです。場所はどこでも良いのですが、ここではBoostのルートフォルダに入れることにします。

ビルドとインストール

boost-jamはコマンドプロンプトで操作します。コマンドプロンプトを起動して、Visual C++の環境変数をセットしてください(スタートメニューの「Visual Studio 2008 コマンド プロンプト」を使うのが手っ取り早いでしょう)。

まず、Boostのルートフォルダをカレントディレクトリにします(異なるドライブに移動する場合は/dオプションを指定します)。

cd Boostのルートフォルダのパス

次に、boost-jamを実行します。以下のようにオプションを指定して実行すると、自動的にビルドして、指定したフォルダにヘッダファイルとライブラリファイルが保存されます。

bjam --prefix=インストール先のフォルダ --toolset=msvc link=static,shared runtime-link=static,shared release debug install

bjamのオプションを簡単に説明します。

--prefix
インストール先のフォルダを指定します。ここで指定したフォルダにincludeフォルダとlibフォルダが作られて、ヘッダファイルとライブラリファイルが保存されます。
--toolset
使用するコンパイラを指定します(Visual C++の場合はmsvcです)。コンパイラのバージョンは自動的に検出しますが、--toolset=msvc-9_0のように明示的にバージョンを指定することもできます。
link
スタティックリンクライブラリを生成するか(static)、ダイナミックリンクライブラリを生成するのか(shared)を指定できます(両方指定することもできます)。
runtime-link
ランタイムライブラリをスタティックリンクするのか(static)、ダイナミックリンクするのか(shared)を指定できます(両方指定することもできます)。
releaseとdebug
それぞれリリース版とデバッグ版をビルドすることを意味しています。

上述の例では使用していませんが、次のオプションを指定することで特定のライブラリのみをビルドしたり、特定のライブラリを除外したりすることができます。

--with-library
特定のライブラリのみをビルドしたい場合に指定します。例えば、regexライブラリだけをビルドしたい場合は--with-regexオプションを指定します。
--without-library
特定のライブラリをビルドから除外したい場合に指定します。例えば、pythonライブラリをビルドしない場合は--without-pythonを指定します。

なお、bjamのオプションは--helpオプションで確認できます。

Visual C++の設定

インストール先に生成されたinclude\boost-1_36フォルダとlibフォルダをVisual C++のインクルードディレクトリとライブラリディレクトリに追加します。Visual C++ 2008の場合、「ツール」メニューの「オプション」で、「プロジェクトおよびソリューション」→「VC++ ディレクトリ」で設定できます(「ディレクトリを表示するプロジェクト(S)」プルダウンメニューの「インクルード ファイル」と「ライブラリ ファイル」)。

参考文献