创建新的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。
答案 0 :(得分:1)
CMAKE_CXX_STANDARD
变量用于初始化CXX_STANDARD
属性。
来自物业文件:
对于没有标准级别概念的编译器,例如MSVC, 这没有效果。
对于使用普通CMake的Visual Studio 2017,C ++ 17(默认为C ++ 14)的规范方式是:
target_compile_options(optional2 PRIVATE /std:c++latest)