boost1.49.0のビルド、boost1.39.0のビルド
5年ぶりにboostのバージョン更新のためにビルドを実施しました。
当時はバージョンも1.33.1で、Visual Studio 2005、Solaris8、Solaris10の3環境のためにビルドして使用していたが、
今回はバージョン1.49.0で、Visual Studio 2005、Visual Studio 2008、Visual Studio 2010、Solaris10の4環境向けである。
(※Visual Studio 2005、Visual Studio 2008、Visual Studio 2010の3環境で利用する場合、boostのライブラリはWindowsで一回だけビルドすればよいというものではない。boostのライブラリ名を見るとわかるように、vc80、vc90、vc100とそれぞれの環境に応じて使用されるライブラリは異なるので注意)
こちらのサイトを参考にさせていただきながら、b2.exeでビルドを行う。
http://sites.google.com/site/boostjp/howtobuild
このサイトには記載されていないが、デフォルトだと「$(boostのルートディレクトリ)\release」にインストールされるので、「install --prefix=.\」などとしてインストールパスを変更。
b2 toolset=msvc-10.0 install --prefix=.\ link=static,shared
============================
(追記)
1.49.0だと昔作った自分のライブラリで色々と調整が必要とわかったので、1.3系の最後のバージョンである1.39.0のboostをひとまず利用することにした。ただし、Visual Studio 2008やVisual Studio 2010でビルドするにはひと工夫必要である。いかに手順を示す。
(1)ビルドツールが古いので、
・boost.orgから最新のboost-jam(バイナリ版:boost-jam-x.x.xx-x-ntx86.zip)をダウンロードするか、
・最新のboost一式を落として「bootstrap.bat」を実行してできあがる「bjam.exe」(最近のバージョンは「b2.exe」も作成される)を
1.39.0のルートフォルダに上書きコピーする。
(2)ビルドしたい方(2008 / 2010)の、Visual Studioコマンドプロンプトを開く(普通のコマンドプロンプトではダメ[Visual Studio 2005ならOK])。
1.39.0のルートフォルダにチェンジディレクトリ。
(3)bjam.exeあるいは、b2.exeを実行する。
私の場合、static link(runtime shared)のビルドが欲しいので、以下の様にパラメータを指定している。
bjam --prefix=.\ --toolset=msvc-10.0 link=static runtime-link=shared release debug install --build-type=complete bjam --prefix=.\ --toolset=msvc-9.0 link=static runtime-link=shared release debug install --build-type=complete
上記のパラメータでは、以下のようなライブラリが作成される。
libboost_date_time-vc100-mt-*-*.lib libboost_date_time-vc90-mt-*-*.lib
※ひとつ注意点としては、boost1.39.0だとVisual Studio 2008では警告止まりでビルドができるが、
Visual Studio 2010だとエラーになるものがある(regexが使えない)。
従って、現状は正常にビルドできたものだけ利用できるといったところか。
現時点ではこれで使うとしても、最新の方が新しい機能を利用できるし、数多くのバグフィックスがなされているので、なるべく最新のビルドバージョンを使う方向でいくようにはしたい。<参考>
http://stackoverflow.com/questions/10356112/how-to-compile-boost-1-39-in-vs2010