我正在使用cmake构建我的C ++项目。在我的顶级CMakesList.txt
文件中,我有以下指令:
set(CMAKE_CXX_COMPILER g++-8)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_BUILD_TYPE Debug)
我对将C ++ 17用于我的项目感兴趣。但是由于动态异常,我的第三方库之一无法用C ++ 17编译。是否可以在cmake中仅使用C ++ 14编译一个目标,而使用C ++ 17编译其余目标?
答案 0 :(得分:1)
变量CMAKE_CXX_STANDARD
只是CXX_STANDARD目标属性的默认值。您可以通过其他方式为不同的目标分配此属性:
set_target_properties(<target1> PROPERTIES CXX_STANDARD 14)
set_target_properties(<target2> PROPERTIES CXX_STANDARD 17)