我正在爲intel編譯器和vs2008構建bjam的boost庫,並且我無法確定哪些優化正在從bjam傳遞給編譯器。對於其中一個編譯器的gcc,我可以在其中一個bjam文件中看到一些優化,但我找不到我關心的編譯器的優化標誌。所以,我的問題是 -如何判斷bjam使用哪些優化來構建提升
- 有誰知道默認優化標誌位於哪裏?
- 如果他們在bjam內聲明,有誰知道我可以重寫他們?
我正在爲intel編譯器和vs2008構建bjam的boost庫,並且我無法確定哪些優化正在從bjam傳遞給編譯器。對於其中一個編譯器的gcc,我可以在其中一個bjam文件中看到一些優化,但我找不到我關心的編譯器的優化標誌。所以,我的問題是 -如何判斷bjam使用哪些優化來構建提升
如果你有興趣看選項整組要傳遞建立可以運行bjam
與-n -a
選項和建設的其他選項,給你一套完整的命令時要調用編譯器調用以及生成的任何響應文件(請參閱Boost Jam Options)。您也可以直接查看Boost Build源並查看指定功能的翻譯內容(請參閱Boost Build Tools Files)。例如:
gcc.jam
(gcc.jam #292)msvc.jam
(msvc.jam #1139)1139年至1153年,您可以容易找出相同對於其他編譯器,只需查看源代碼,因爲它們相當自我解釋。您可以在*.jam
來源中搜索「<optimization>
」和「<inlining>
」。
通過在構建時在命令行中指定feature=value
選項,可以在命令行中覆蓋它們。這些選項與您在工具箱文件中看到的<feature>value
規格相匹配。例如,要覆蓋您在命令行中指定的某些優化功能,如"optimization=speed"
。如果你想要更細緻的控制,你必須深入研究Boost Build規範,並且可能必須創建一個自己的變體來定義要構建的特定選項和功能。
很多庫只是頭文件,你關心某個特定庫的優化,例如線程? – Anycorn 2010-05-08 15:35:16
我很關心boost :: gregorian :: date這是部分靜態庫 – Steve 2010-05-09 00:53:48
檢查出這個問題,它應該回答你: http://stackoverflow.com/questions/2722421/how-to-determine-value -of-CXXFLAGS合的bjam - 或 - 追加到它 – Anycorn 2010-05-08 15:37:43