CMAKE_C_KNOWN_FEATURES¶
在第 3.1 版中新增。
该版本 CMake 已知的 C 特性的列表。
此全局属性中列出的特性可能可用给 C 编译器。如果 C 编译器提供该特性,它将列在 CMAKE_C_COMPILE_FEATURES
变量中。
此处列出的特性可与 target_compile_features()
命令配合使用。有关编译特性和受支持的编译器列表的信息,请参阅 cmake-compile-features(7)
手册。
此版本 CMake 已知的特性如下。
表示 C 标准支持的高级元特性¶
在第 3.8 版中新增。
c_std_90
编译器模式至少是 C 90。
c_std_99
编译器模式至少是 C 99。
c_std_11
编译器模式至少是 C 11。
c_std_17
在第 3.21 版中新增。
编译器模式至少是 C 17。
c_std_23
在第 3.21 版中新增。
编译器模式至少是 C 23。
注释
如果编译器的默认标准级别至少与请求的特性级别相同,CMake 可能会省略 -std=
标志。如果编译器的默认扩展模式与 <LANG>_EXTENSIONS
target 属性不匹配,或者设置了 <LANG>_STANDARD
target 属性,则仍会添加该标志。
底层单独编译特性¶
c_function_prototypes
在
ISO/IEC 9899:1990
中定义的函数原型。c_restrict
在
ISO/IEC 9899:1999
中定义的restrict
关键字。c_static_assert
在
ISO/IEC 9899:2011
中定义的静态声明。c_variadic_macros
在
ISO/IEC 9899:1999
中定义的可变参数宏。