使用CLion,CMake和VS2017编译器编译C ++ 17

时间:2017-07-29 19:16:21

标签: c++ visual-studio cmake c++17 clion

创建新的CLion项目并选择C ++ 17语言标准时,C ++ 17代码将无法编译。 最初的CMakeLists.txt文件如下:

cmake_minimum_required(VERSION 3.8)
project(optional2)
set(CMAKE_CXX_STANDARD 17)
set(SOURCE_FILES main.cpp)
add_executable(optional2 ${SOURCE_FILES})

要编译C ++ 17代码,我必须将以下行添加到CMakeLists.txt文件中:

add_compile_options(/std:c++latest)

这是在CMAKE / CLion中添加此编译选项的正确方法(和/或唯一方法吗?)?

正在使用的C ++编译器是运行CLion 2017.2的Windows 10工作站上带有nmake.exe的vs2017 cl.exe。

1 个答案:

答案 0 :(得分:1)

CMAKE_CXX_STANDARD变量用于初始化CXX_STANDARD属性。

来自物业文件:

  

对于没有标准级别概念的编译器,例如MSVC,   这没有效果。

对于使用普通CMake的Visual Studio 2017,C ++ 17(默认为C ++ 14)的规范方式是:

target_compile_options(optional2 PRIVATE /std:c++latest)