我必须至少支持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 .....
答案 0 :(得分:1)
您始终可以将CMAKE_CXX_FLAGS
设置为-std=c++98
,以推翻CMake自行设置的内容。