CMake バージョン 3.1.0 以降では、CMake でサポートされている C 機能を識別するための 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 中国語 Web サイトの他の関連記事を参照してください。