首页  >  文章  >  后端开发  >  如何使用 CMake 检测编译器中的 C 11 支持?

如何使用 CMake 检测编译器中的 C 11 支持?

Barbara Streisand
Barbara Streisand原创
2024-11-01 08:10:30268浏览

How can I detect C  11 support in a compiler using CMake?

使用 CMake 检测编译器中的 C 11 支持

识别编译器支持

CMake 版本 3.1.0 及以上提供 CMAKE_CXX_COMPILE_FEATURES 来识别

显式指定 C 标准

设置 CXX_STANDARD 和 CXX_STANDARD_REQUIRED 目标属性以指定所需的标准:

<code class="cmake">add_executable(prog main.cc)
set_property(TARGET prog PROPERTY CXX_STANDARD 11)
set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)</code>

指定所需的 C 功能

使用 target_compile_features 指定特定的 C 功能,CMake 将推导出适当的标准:

<code class="cmake">project(foobar CXX)
add_executable(foobar main.cc)
set(needed_features    # Specify the required C++ features used in the program
    cxx_strong_enums
    cxx_constexpr
    cxx_auto_type)
target_compile_features(foobar PRIVATE ${needed_features})</code>

支持的 C 功能

以下代码列出了您的 CMake 版本支持的 C 功能:

<code class="cmake">cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
get_property(known_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES)
foreach(i ${known_features})
  message("${i}")
endforeach()</code>

以上是如何使用 CMake 检测编译器中的 C 11 支持?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn