如何在CMake中启用C++ 17

如何在CMake中启用C++ 17

MiP*_*MiP  38 c++ cmake visual-studio c++17

 

我正在使用VS 15.3,它支持集成的CMake 3.8.如何在不为每个特定编译器编写标志的情况下定位C++ 17?我当前的全局设置不起作用:

# https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD.html
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# expected behaviour
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++lastest")



cmake生成makefile增加c++版本选项,命令如下:

# 增加-std=gnu++11
cmake . -DCMAKE_CXX_STANDARD=11 <path-to-source>

# 增加-std=gnu++14
cmake . -DCMAKE_CXX_STANDARD=14 <path-to-source>

# 增加-std=gnu++17
cmake . -DCMAKE_CXX_STANDARD=17 <path-to-source>
上面命令生成的makefile中选项是-std=gnu++xx, 如果不想使用gnu扩展,只想用标准的c++(-std=c++xx), 命令如下:

# 增加-std=c++11
cmake . -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_EXTENSIONS=OFF <path-to-source>

# 增加-std=c++14
cmake . -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_EXTENSIONS=OFF <path-to-source>

# 增加-std=c++17
cmake . -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_EXTENSIONS=OFF <path-to-source>

 

posted on   zxddesk  阅读(8024)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示