【发布时间】:2018-02-01 21:58:43
【问题描述】:
如果我这样做:
set_property(TARGET tgt PROPERTY C_STANDARD 99)
在CMakeLists.txt 和C 编译器是gcc 中,我得到-std=gnu99 标志而不是-std=c99。为什么?以及如何执行-std=c99?
【问题讨论】:
标签: gcc cmake c99 compiler-options
如果我这样做:
set_property(TARGET tgt PROPERTY C_STANDARD 99)
在CMakeLists.txt 和C 编译器是gcc 中,我得到-std=gnu99 标志而不是-std=c99。为什么?以及如何执行-std=c99?
【问题讨论】:
标签: gcc cmake c99 compiler-options
有C_EXTENSIONS目标属性,指定是否请求编译器特定的扩展:
此属性指定是否应使用编译器特定的扩展。对于某些编译器,这会导致在编译行中添加一个标志,例如
-std=gnu11而不是 -std=c11。此属性默认为ON。基本 C 标准级别由C_STANDARD目标属性控制。
您可以将此属性设置为OFF 以获得“纯”C 标准。
【讨论】: