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 中定义的可变参数宏。