如何在cmake> = 2.6中使用不带gnu扩展的c ++ 98?

时间:2018-07-28 14:16:36

标签: c++ cmake

我必须至少支持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 .....

1 个答案:

答案 0 :(得分:1)

您始终可以将CMAKE_CXX_FLAGS设置为-std=c++98,以推翻CMake自行设置的内容。