如何通过使用cmake使用C ++ 14构建某些目标以及使用C ++ 17构建一些目标?

时间:2018-07-11 22:35:44

标签: build cmake c++17

我正在使用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编译其余目标?

1 个答案:

答案 0 :(得分:1)

变量CMAKE_CXX_STANDARD只是CXX_STANDARD目标属性的默认值。您可以通过其他方式为不同的目标分配此属性:

set_target_properties(<target1> PROPERTIES CXX_STANDARD 14)
set_target_properties(<target2> PROPERTIES CXX_STANDARD 17)