Ut Video Codec Suite で使うテストフレームワークに Boost.Test を使おうと思ったので、とりあえず Windows にインストールしました。現在の最新版はバージョン 1.60.0 です。

バイナリパッケージは公式リリースされていないので、ソースをダウンロードして自分でビルドするわけですが、Windows + Visual C++ だと x86/x64 とか Release/Debug とか気を付ける必要があります。

で、ちょっとググってそのまんまの記事を発見。ここに書いてあるのはバージョン 1.55.0 の時の話で、ビルドの仕方がちょっと違っているようです。というわけで以下は私がとった手順。

  1. ソースを取ってきて C:\boost 以下に展開する。(C:\boost\boost_1_60_0\boost にヘッダファイル群が置かれるようにする)
  2. 「VS2013 x64 Native Tools コマンド プロンプト」を実行
  3. コマンドプロンプト上で以下を実行する。
    cd C:\boost\boost_1_60_0
    bootstrap.bat
    b2 toolset=msvc threading=multi variant=debug,release link=static runtime-link=static address-model=32 --stagedir=stage/x86 -j 8
    b2 toolset=msvc threading=multi variant=debug,release link=shared runtime-link=shared address-model=32 --stagedir=stage/x86 -j 8
    b2 toolset=msvc threading=multi variant=debug,release link=static runtime-link=static address-model=64 --stagedir=stage/x64 -j 8
    b2 toolset=msvc threading=multi variant=debug,release link=shared runtime-link=shared address-model=64 --stagedir=stage/x64 -j 8
    

これで正しいコンパイラが使われるの?と思ったけど、ちゃんと x86 のライブラリも x64 のライブラリも適切な位置に生成されているようです。 -j 8 しているので Core i7-2600K (4コア8スレッド)のウチのマシンではフルに CPU を使います。CPU を 100% (800%) 使ってるのなんて久しぶりに見ました。

あと以下の作業をすると Visual C++ のプロジェクトの設定がちょっときれいに書けて良いかと思われます。(boost のバージョンアップ時が楽)

  • システムの環境変数で、 BOOST_ROOT を C:\boost\boost_1_60_0 、BOOST_LIB_X86 を %BOOST_ROOT%\stage\x86\lib 、BOOST_LIB_X64 を %BOOST_ROOT%\stage\x64\lib にそれぞれ設定する。

なお、リンクすべきライブラリは boost のヘッダファイルの中で #pragma comment(lib, ...) で指定されるようで、コマンドライン等で明示的に指定する必要は無いようです。楽だ。

Trackback

only 1 comment untill now

  1. Windows に boost C++ libraries をインストール(ビルド)(その2)

    Boost.Test を使ったプログラムを Visual Studio の IDE 上で書いてコンパイルしようとしたら、libboost_unit_test_framework-vc120-mt-gd-1_60.lib が見つからない、というリンクエラーが出ました。 ライブラ…

Add your comment now