设置C标准标志可启用GNU扩展

时间:2018-02-01 21:58:44

标签: gcc cmake c99 compiler-options

如果我这样做:

 set_property(TARGET tgt PROPERTY C_STANDARD 99)

CMakeLists.txt中且C编译器是gcc,我得到-std=gnu99标志而不是-std=c99。为什么?我如何强制执行-std=c99

1 个答案:

答案 0 :(得分:3)

C_EXTENSIONS目标属性,它指定是否请求编译器特定的扩展:

  

此属性指定是否应使用特定于编译器的扩展。对于某些编译器,这会导致向编译行添加诸如-std=gnu11而不是 - std=c11的标志。默认情况下,此属性为ON。基本C标准级别由C_STANDARD目标属性控制。

您可以将此属性设置为OFF以获取“纯”C标准。