2011-08-04 7 views
6

ブーストライブラリは主にヘッダのみですが、Boost.Threadなどのコンパイルが必要なものがいくつかあります。 Darwinでは、これらをコンパイルして32ビット(i386)バイナリにコンパイルできるように、-m32フラグをどのように渡しますか?私が聞いたことがないこのJamrootのことがあります。どこから始めたらよいか分かりません。コンパイルが必要なライブラリ(スレッドなど)にコンパイラフラグを渡す

説明:私は、-m32フラグを使ってプログラムをコンパイルして、ブーストライブラリを使用する方法は問いません。 Boostライブラリ自体を-m32フラグでコンパイルする方法を尋ねています。

+0

http://www.boost.org/doc/libs/1_47_0/more/getting_started/unix-variants.html – Arunmu

+0

-1公式の入門書を読んでいないため、ごめんなさい。 –

+0

@ArunMu、はい私は知っている、私はそのページを見た。それは私の質問に答えるものではありません。あなたはb2に渡すことができるいくつかのフラグがありますが、どれもあなたがアーキテクチャを変更することを許しません。私はJamrootファイルを見てみましたが、どこにでもこのようなコンパイラフラグを指定することができませんでした。 – eeeeaaii

答えて

5

コンパイルするアーキテクチャを指定するには、b2を呼び出すときにarchitecture機能を指定します。

組み込み機能がまだないコンパイラオプションを指定するには、b2を呼び出すときにcxxflags機能を指定します。

組み込み機能をまだ持っていないリンカオプションを指定するには、b2を呼び出すときにlinkflags機能を指定します。

これらはすべてthe Boost.Build docsにリストされています。

+2

ありがとうございます。私が最終的にb2とbjamが同じことを実際に理解したという事実は、ここで本当に助けになりました - 私はdiffを使ってこれを確認しました。 2つの同じバージョンの実行可能ファイルがあるのはなぜですか?そのうちの1つはほぼ完全に文書化されていません(b2)。それは私には意味がありません。公式のドキュメントは本当に私のために解析するのは難しい - これははるかに理にかなった:http://www.highscore.de/cpp/boostbuild/。あなたの助けもありがとう。 – eeeeaaii

+0

@eeeeaaii: 'b2'は 'bjam'の新しい正式名称です。私は、彼らは同じものですが、名前 'bjam'は現在廃止されています。 – ildjarn

+1

何ですか? - 私は過去2ヶ月間とても混乱していたのも不思議ではありません! – meowsqueak

1

私が理解したところでは、ドキュメントを正しく読んでいれば、特定のアーキテクチャを構築する方法はb2の "address-model = xx"オプションを使うことです。

例:

b2 install toolSET=msvc-9.0 link=shared variant=release address-model=64 

または

b2 install toolSET=msvc-9.0 link=shared variant=release address-model=32 

お役に立てば幸いです。

よろしく、

-RMWChaos

EDIT:別のSO同じ答えhereを提供するスレッドが見つかりました。

関連する問題