ホームページ >バックエンド開発 >C++ >CMake を使用してコンパイラで C 11 サポートを検出するにはどうすればよいですか?

CMake を使用してコンパイラで C 11 サポートを検出するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 08:10:30336ブラウズ

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

CMake を使用したコンパイラーでの C 11 サポートの検出

コンパイラー サポートの識別

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。