web-dev-qa-db-ja.com

静的リンクのビルドブースト(MinGW)

私はbjamを使用してMinGW用のBoost(SystemとFileSystemを使用しています)を構築しています:

bjam --toolset=gcc stage

ビルドは正常ですが、静的にリンクできるようにしたいので(最終製品用に単一のファイルが必要です)、次のことを試しました。

bjam --link=static --toolset=gcc stage

しかし、同じ出力が得られます。何か案は?

編集投稿後すぐに答えた2番目の質問:pでも、これは他の人のためにここに残しておきます。

bjam --build-type=complete --toolset=gcc stage

確かに動的と静的の両方を構築します。

29
Adam

リンクはbjamのオプションではなくプロパティだと思います。つまり、その前に-があってはならないということです。

これは静的ライブラリのみを構築するための私のコマンドラインです(ただし、Visual C++):

bjam install --toolset=msvc variant=release link=static threading=multi runtime-link=static

これを元のビルドコマンドにマッピングすると、次のようになります。

bjam --toolset=gcc link=static stage

多分:

bjam stage --toolset=gcc link=static

実行してみてください

bjam --help

bjamのプロパティとオプションの詳細については。

41
Laserallan

新しいブースト(2011年2月)では、bjamもビルドする必要があることに注意してください。何らかの理由で、現在ダウンロード可能なbjamが正常に機能しません。

だから最初に:

cd ...\boost_1_45_0\tools\build\v2\engine\src

build.bat mingw

PATHにbjamを追加する必要があります(cmdプロンプトだけでなく、コントロールパネルから)。次に

cd ...\boost_1_45_0\

bjam --build-type=complete --toolset=gcc stage

私のセットアップはVista、Boost 1.45、MinGW 4.5で、msysではなくcmd.exeからビルドしています。

http://code-slim-jim.blogspot.com/2011/02/boost-in-Vista-using-mingw-and-cmdexe.html

8
Ashley Smart

次のコマンドラインを使用して、静的にリンクされたバージョンと動的にリンクされたバージョンの両方のブーストをビルドします。

bjam  "-sBUILD=debug release <runtime-link>static/dynamic <threading>multi" stage

これは、WindowsYMMVのVisualC++で実行されます。

0
Jon Trauntvein