c++ - 如何在 cmake >= 2.6 中使用没有 gnu 扩展的 c++98?
问题描述
我至少必须支持 cmake 2.6(以及像 3.12 这样的最新版本):
cmake_minimum_required(VERSION 2.6)
并且想指定旧的 c++ 标准 (c++98) 并禁止 gnu 扩展(使用 -std=c++98 而不是 -std=gnu++98)。在较新的版本中(自 3.0 起),我们有CXX_EXTENSIONS和CXX_STANDARD,但我不能使用它们,因为 cmake 2.6 不支持它们。
我试图指定add_definitions(-std=c++98)
,但它会导致编译字符串如下:
/usr/bin/c++ ..... -std=c++98 ..... -std=gnu++98 .....
解决方案
您始终可以设置(或修改)CMAKE_CXX_FLAGS
以-std=c++98
否决 CMake 自行设置的内容。
推荐阅读
- bash - 在 bash 脚本中检查 URL 是否有效的最快方法
- ansible - 从剧本中将 ansible 事实写入文件
- flutter - Flutter:使用本地化代理和支持的Locales 时,应用程序在设备上冻结
- google-cloud-dataflow - 如何尽快限制 Apache Beam 中的 PCollection?
- python - 如何从 PostgreSQL 中不一一查询?
- flutter - Flutter构建失败错误..androidmanifest没有应用程序标签
- java - 当它们作为 lambdas 或方法引用传递时,如何实现可移除的侦听器?
- dataframe - 在最大列值上查询火花数据框
- python - 如何修改任意 scipy.stats 分布以截断它们?
- ios - iOS SMS 和 Call Spam Reporting 扩展报告错误的号码