首页 > 解决方案 > 如何在 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_EXTENSIONSCXX_STANDARD,但我不能使用它们,因为 cmake 2.6 不支持它们。

我试图指定add_definitions(-std=c++98),但它会导致编译字符串如下:

/usr/bin/c++ ..... -std=c++98 ..... -std=gnu++98 .....

标签: c++cmake

解决方案


您始终可以设置(或修改)CMAKE_CXX_FLAGS-std=c++98否决 CMake 自行设置的内容。


推荐阅读