0
我爲一個小型項目使用Boost.Build並希望啓用C++ 17支持。據this answer,我可以通過編譯器標誌-std=c++17
通過以下方式和標誌被傳播到所有可執行文件和庫:如何在我的助推jamfile中創建條件cxxflags功能?
import feature ;
feature.feature cpp17 : on : composite optional propagated ;
feature.compose <cpp17>on : <cxxflags>"-std=c++17" ;
project myproject : requirements <cpp17>on ;
,當我使用toolset=gcc
與gcc7這工作得很好。但是,在其他編譯器上,以另一種方式啓用C++ 17模式。例如,Clang 3.9預計-std=c++1z
而不是-std=c++17
。在MSVC中,C++版本取決於MSVC版本。
有沒有一種方法來設置C++版本(C++ 11/C++ 14/C++ 17)在jamfile中(或多或少)獨立於工具集的方式?
感謝您的回覆。我嘗試了你的解決方案,但是我得到了這些錯誤:'錯誤:複合特徵的擴展導致的值衝突':error:values:clang: -std = C++ 1z gcc: -std = C++ 17 ''錯誤:一個貢獻的複合材料是'這是一些新功能嗎?我使用Boost.Build 2015.07-git from boost 1.62.0。 –
pschill