Boost をコンパイルしたときの bjam オプションをメモしておきます。
ソースコードやバイナリを配置した場所は次のようになります。
| Boost のソースコード | C:\local\Boost\boost_1_39_0 |
|---|---|
| lib をはき出す場所 | C:\local\Boost\boost-build |
| bjam のバイナリ | C:\local\Boost\boost-jam-3.1.17-1-ntx86\bjam.exe |
| bzip2 のソースコード | C:\local\bzip2\bzip2-1.0.5 |
| zlib のソースコード | C:\local\zlib\zlib123 |
コマンドは次のようになります。
cd C:\local\Boost\boost_1_39_0 C:\local\Boost\boost-jam-3.1.17-1-ntx86\bjam.exe ^ -sBZIP2_SOURCE=C:\local\bzip2\bzip2-1.0.5 ^ -sZLIB_SOURCE=C:\local\zlib\zlib123 ^ --stagedir=C:\local\Boost\boost-build ^ --build-type=complete ^ toolset=msvc-9.0 ^ link=static ^ runtime-link=static ^ threading=multi ^ variant=release,debug ^ stage
圧縮データを読み書きしたいので zlib と bzip2 を取り込んでコンパイルしました。また、最終的にスタティックライブラリが欲しかったので link=static 、 Visual C++ のランタイムを必要としないで動作させたかったので runtime-link=static を指定しました。コンパイラの種類はバージョン含めて toolset=msvc-9.0 のように指定した方が良いそうです。マルチスレッドの指定は必要だっただろうか…
これでシリアライズのサンプルを動かしてみましたが、できあがったバイナリはランタイムに依存しておりませんでした。よかったよかった。
Comments
bjam –toolset=msvc-9.0 link=static runtime-link=static release debug stage
こんな感じで、すべてビルドしようと思ったのですが
何故か通りません
bjam –toolset=msvc-9.0express link=static runtime-link=static release debug stage
このようにしたら、実行されました
expressを付けただけです。
しかし、今度は
実行中に流れてくる文章の中で
「\Utilities\Bin\x86″;”C:\Program の使い方が誤っています。」
という文が混じっているようで、何やらマズイ雰囲気…
stageフォルダを見てもlibは一切生成されていないため…
失敗のようです
もしかしたら環境設定が間違っているのかもしれません。
Visual Studio 2008 コマンドプロンプトを起動すると
c:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat
が呼ばれますが
「Setting environment for using Microsoft Visual Studio 2008 x86 tools.」
「\Utilities\Bin\x86″;”C:\Program の使い方が誤っています。」
と、最初にこの二行が出力されます
何か変なところをいじってしまったのでしょうか…
clを呼び出しても
「’cl’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
と出力されるので…
何が問題なのか…もう、全てが問題のような気がしてきます(汗
> yomogi さん
なんとも奇っ怪な状態ですね…
もしよろしければ、コマンドプロンプトで…
> set
…と入力して、環境変数を全部見せていただけますか?
変なところにスペースが入っているのかもしれません。
む…環境変数をメールで送ろうかと思いましたが
ふと、
VC2008で「\Utilities\Bin\x86″;”C:\Program の使い方が誤っています。」が出るのであれば、
VC2005ならどうなのだろう、と思い
Visual Studio 2005 コマンドプロンプトを立ち上げたところ、発生しませんでした
そこで、
toolset=msvc-8.0express
で実行したところ正常に出力されているようです(現在進行形)
おそらく,VC2008のvsvars32.batに問題があると思うので、少し調べてみます
> yomogi さん
無事にコンパイルが開始できたようで、よかったです(^^
違うバージョンを同じマシンにインストールするのがマズいのか、
それともご指摘のように Visual C++ 2008 の問題なのか…
でも、確かに Visual C++ 2008 のインストールは問題が多くて大変でした。
目に見えないインストールの失敗は考えられるかもしれませんね。
Contributions