2012年12月2日日曜日

Boostのビルド Visual Studio 2012 (2005 2008 2010)

Boost(1.52.0)をVisual Studio 2012でビルドする方法
Boostは1.42.0以降からCmakeには非対応になったためb2でビルドする必要があります.

  1. Visual Studioコマンドプロンプトを開くか,普通のコマンドプロンプトを開いて64ビット版をビルドしたければ,"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\vcvars64.bat"を実行する.32ビット版をビルドしたければC:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\vcvars64.bat"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"を実行する.これはVisual Studio用の環境変数を設定するバッチファイルです.(b2.exeのビルド自体は32ビットなので64ビット版の環境設定を設定する必要ないようです.Windows8+MSVC11環境では64ビット版を設定するとb2.exeの生成に失敗しました)
  2. Boostのディレクトリに移動する.
  3. bootstrap.batを実行するとb2.exeという実行ファイルが生成されているはず
  4. 64ビット版の場合:b2.exe --toolset=msvc-11.0 --build-type=complete architecture=x86 address-model=64 -j 8 stage.32ビット版の場合:b2.exe --toolset=msvc-11.0 --build-type=complete stage.-jオプションはビルドの並列数のしていなので,マルチコアの場合は指定しておくと高速にビルドできます.最後のstageはビルドされたライブラリが出力されるディレクトリパスです.
  5. 待っていると,そのうちビルドが完了する.何故か私の環境では丸1日かかってしまった.--build-typeはDefault設定のminimalにしておいた方がよかったかもしれない.また,python関係のライブラリのビルドには失敗してしまうが,使わないので気にしない(追記)Boost.Pythonを使わない場合は引数に"--without-python"を追加する
  6. ここからは必要があれば実行する.追加するライブラリはZlibとbzip2というアーカイブ関係のライブラリ.b2.exe --toolset=msvc-11.0 --build-type=complete architecture=x86 address-model=64 stage --prefix=c:\Boost -sBZIP2_SOURCE="C:\bzip2-1.0.6" -sZLIB_SOURCE="C:\zlib-1.2.7".というようにZlibとbzip2のソースディレクトリのパスを指定して実行する.
  7. ビルドが完了するとBoostでzlibとbzip2が使えるようになる
  8. b2.exe --toolset=msvc-11.0 --build-type=complete architecture=x86 address-model=64 install --prefix=C:\Boost.ここで--prefixはインクルードファイル,ライブラリファイルがインストールされるディレクトリパスなので,個人の環境に合わせて変更する
--prefixで指定したディレクトリにインクルードディレクトリとライブラリディレクトリがコピーされていれば完了

一応,Visual Studio 2005,2008,2010でも1番目のVisual Studioコマンドプロンプトの部分をそれぞれのバージョンに合わせて実行すればビルドできます.

以下のページを参考にしました

http://stackoverflow.com/questions/2629421/how-to-use-boost-in-visual-studio-2010

0 件のコメント:

コメントを投稿