CMake 版本 3.1.0 及以上提供 CMAKE_CXX_COMPILE_FEATURES 来识别
设置 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>
使用 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>
以下代码列出了您的 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中文网其他相关文章!