2010-05-08 72 views
5

我正在爲intel編譯器和vs2008構建bjam的boost庫,並且我無法確定哪些優化正在從bjam傳遞給編譯器。對於其中一個編譯器的gcc,我可以在其中一個bjam文件中看到一些優化,但我找不到我關心的編譯器的優化標誌。所以,我的問題是 -如何判斷bjam使用哪些優化來構建提升

  1. 有誰知道默認優化標誌位於哪裏?
  2. 如果他們在bjam內聲明,有誰知道我可以重寫他們?
+0

很多庫只是頭文件,你關心某個特定庫的優化,例如線程? – Anycorn 2010-05-08 15:35:16

+0

我很關心boost :: gregorian :: date這是部分靜態庫 – Steve 2010-05-09 00:53:48

+0

檢查出這個問題,它應該回答你: http://stackoverflow.com/questions/2722421/how-to-determine-value -of-CXXFLAGS合的bjam - 或 - 追加到它 – Anycorn 2010-05-08 15:37:43

回答

8

如果你有興趣看選項整組要傳遞建立可以運行bjam-n -a選項和建設的其他選項,給你一套完整的命令時要調用編譯器調用以及生成的任何響應文件(請參閱Boost Jam Options)。您也可以直接查看Boost Build源並查看指定功能的翻譯內容(請參閱Boost Build Tools Files)。例如:

1139年至1153年,您可以容易找出相同對於其他編譯器,只需查看源代碼,因爲它們相當自我解釋。您可以在*.jam來源中搜索「<optimization>」和「<inlining>」。

通過在構建時在命令行中指定feature=value選項,可以在命令行中覆蓋它們。這些選項與您在工具箱文件中看到的<feature>value規格相匹配。例如,要覆蓋您在命令行中指定的某些優化功能,如"optimization=speed"。如果你想要更細緻的控制,你必須深入研究Boost Build規範,並且可能必須創建一個自己的變體來定義要構建的特定選項和功能。

相關問題