在使用CLion通过cmake进行gcc程序构建的时候,遇到一个问题,默认使用的C++标准是GNUC++,即
set(CMAKE_CXX_STANDARD 17)
对应到编译选项是-std=gnuc++17
但是实际上我想要的是不带GNU扩展的C++标准,即对应编译选项是-std=c++17的CMAKE构建参数,为此,需要额外配置一个CMAKE参数,即
CMAKE_CXX_EXTENSIONS
代表是否使用带GNU扩展的C++(大部分场景下,尤其简单的程序,可能并不会有什么差异,但是两者之间存在很多区别,具体不详谈,因为了解的也不多,怕误导人),如果要关闭GNUC++,就将该参数配置为OFF,如下
set(CMAKE_CXX_EXTENSIONS OFF)
最终获取的c++参数就是
-std=c++17