c++ - 尽管我将 target_compile_features 设置为 cxx_std_17,但 CMake 并未将编译器选项 -std 设置为 gnu17 或 c++17
问题描述
我更新了 GCC 和 CMake 的版本。更新后 CMake 不再为 c++ 标准设置正确的命令行选项。
这是我的设置方式:
add_library(project_options INTERFACE)
target_compile_features(project_options INTERFACE cxx_std_17)
然后我链接到 project_options
target_link_libraries(app PRIVATE project_options)
使用 GCC 8.3(在 rhel 上),这会将 std 编译标志设置为-std=gnu17
现在设置为-std=c++11
如果我全局设置编译器,它会按预期工作:
set(CMAKE_CXX_STANDARD 17)
我错过了什么?或者这是新工具中的错误?
我的系统:
- 海合会:11.1.0
- 制作:3.20.2
解决方案
推荐阅读
- c++ - 关于使用 C++ 协程的问题
- react-native - 每当我尝试调用我在另一个反应本机应用程序中创建的 ReactNativeLibrary 时,我都会得到“未定义不是对象”
- javascript - 我应该如何在 JS 类中声明属性?
- node.js - 要导入 Sass 文件,首先需要安装 node-sass
- javascript - 将十六进制转换为 BigInt 节点红色
- javascript - 使用 Jquery 在页面上定位第一次和第二次出现的 Div
- qt - 在 Qt 中的 Table 中显示文件夹中的数据条目(xml)
- c++ - 仅计算“核心”QImage 数据(不包括元数据)的 QCryptographicHash
- c# - 使用带有空 Generic.List 作为参数的 AddRange 时 Generic.List 引发的参数异常
- symfony - 如何修复:错误:u0_.id 列不存在