5

Intelコンパイラとvs2008の両方でbjamを使用してBoostライブラリを構築していますが、bjamからコンパイラにどの最適化が渡されているのかわかりません。コンパイラのgccの1つについて、bjamファイルの1つでいくつかの最適化を確認できますが、気になるコンパイラの最適化フラグが見つかりません。だから、私の質問は-

  1. デフォルトの最適化フラグがどこにあるか知っている人はいますか?
  2. それらがbjam内で宣言されている場合、私がそれらをオーバーライドする方法を誰かが知っていますか?
4

1 に答える 1

9

ビルド時にコンパイラを呼び出すために渡されるオプションのセット全体を確認する場合はbjam-n -aオプションと残りのビルドオプションを使用して実行し、呼び出されるコマンドの完全なセットと、生成される応答ファイルを取得できます(Boost Jam Optionsを参照してください)。また、Boost Buildソースを直接見て、指定された機能が何に変換されるかを確認することもできます(Boost Build Toolsファイルを参照)。例えば:

他のコンパイラについても、かなり自明であるため、ソースを調べるだけで同じことがわかる可能性があります。そして、ソースで「 <optimization>」と「」を検索するだけです。<inlining>*.jam

feature=valueビルド時にコマンドラインでオプションを指定することにより、コマンドラインでそれらをオーバーライドできます。<feature>valueオプションは、ツールセットファイルに表示される仕様と一致します。たとえば、最適化機能をオーバーライドするには、コマンドラインで。のように指定します"optimization=speed"。よりきめ細かい制御が必要な場合は、Boost Buildの仕様を詳しく調べ、ビルドに使用する特定のオプションと機能を定義するために独自のバリアントを作成する必要があります。

于 2010-05-08T21:01:33.523 に答える