首页 > 后端开发 > C++ > 正文

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

Barbara Streisand
发布: 2024-11-01 08:10:30
原创
267 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!