2010-06-01 62 views
1

我需要使用非標準的標誌集(由於Boost線程和C++/CLI之間的衝突)構建Boost。我使用CXXFLAGS添加了所需的標誌(/ clr),但是這個標誌與Boost默認/ EHs標誌衝突(/ clr暗示/ EHa與/ EHs不兼容),所以需要抑制。有像CXXFLAGS這樣的機制來抑制默認的Boost標誌,還是必須手工編輯所有編譯器規範文件?如何在構建Boost時刪除編譯器標誌

回答

2

無法刪除這些特定的選項。你需要做的是指定一個特定的構建變體,它與你正在嘗試構建的內容相匹配。如果您查看msvc.jamsee here),您會發現一個部分,其中列出了它放入的各種/EH*選項(see here)。正如你所看到的,第三個匹配你想用於C++/CLI的/EHa。這意味着建設:bjam asynch-exceptions=on extern-c-nothrow=on <rest of the args>exception-handling-on顯然是不需要的,因爲默認情況下,你會得到這個,並且首先不會看到/EHs選項。

相關問題