使用 CLion、CMake 和 VS2017 编译器编译 C++17
Compiling C++17 using CLion, CMake and the VS2017 compiler
创建新的 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 中添加此编译选项的正确方法(and/or 唯一方法吗?)?
使用的 C++ 编译器是 Windows 10 工作站 运行 CLion 2017.2 上的 nmake.exe vs2017 cl.exe。
CMAKE_CXX_STANDARD
变量用于初始化CXX_STANDARD
属性.
来自 属性 文档:
For compilers that have no notion of a standard level, such as MSVC,
this has no effect.
对于使用普通 CMake 的 Visual Studio 2017,C++17(默认为 C++14)的规范方式是:
target_compile_options(optional2 PRIVATE /std:c++latest)
创建新的 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 中添加此编译选项的正确方法(and/or 唯一方法吗?)?
使用的 C++ 编译器是 Windows 10 工作站 运行 CLion 2017.2 上的 nmake.exe vs2017 cl.exe。
CMAKE_CXX_STANDARD
变量用于初始化CXX_STANDARD
属性.
来自 属性 文档:
For compilers that have no notion of a standard level, such as MSVC, this has no effect.
对于使用普通 CMake 的 Visual Studio 2017,C++17(默认为 C++14)的规范方式是:
target_compile_options(optional2 PRIVATE /std:c++latest)