このガイドでは、コンパイラーが CMake で C 11 をサポートしているかどうかを自動的に検出する方法を検討します。 CMake は、最新および以前の CMake バージョンの包括的な分析を提供します。
CMake バージョン 3.1.0 では、サポートされている C 機能を検出するという強力な機能が導入されました。コンパイラ。これは、cmake_minimum_required コマンドによって実現されます。
<code class="cmake">cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)</code>
CMake の最小バージョンを指定すると、サポートされているすべての C 機能をリストする CMAKE_CXX_COMPILE_FEATURES 変数にアクセスできるようになります。これにより、プロジェクトで使用する C 標準を決定できます。
CMake では、CXX_STANDARD プロパティと CXX_STANDARD_REQUIRED プロパティを使用して、ターゲットの C 標準を明示的に設定できます。例:
<code class="cmake">set_property(TARGET prog PROPERTY CXX_STANDARD 11) set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)</code>
これにより、コンパイラが -std=c などの正しいフラグで呼び出されることになります。 11.
または、 target_compile_features コマンドを使用して、必要な C 機能を指定できます。このリストから、CMake は適切な C 標準を推定できます。
<code class="cmake">target_compile_features(foobar PRIVATE cxx_strong_enums cxx_constexpr cxx_auto_type)</code>
CMAKE_CXX_KNOWN_FEATURES を使用して、サポートされている C 機能のリストを取得します。
CMake は、検出するための複数の方法を提供します。 C 11 コンパイラのサポートと C 標準の指定。この柔軟性により、カスタマイズされた C プロジェクト構成が可能になり、互換性とシームレスなコンパイルが保証されます。
以上がCMake で C 11 コンパイラのサポートを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。