Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mit CMake die C 11-Unterstützung in einem Compiler erkennen?

Wie kann ich mit CMake die C 11-Unterstützung in einem Compiler erkennen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 08:10:30268Durchsuche

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

Erkennen der C 11-Unterstützung in einem Compiler mit CMake

Identifizieren der Compiler-Unterstützung

CMake Version 3.1.0 und höher bietet CMAKE_CXX_COMPILE_FEATURES, um C-Funktionen zu identifizieren, die von unterstützt werden des Compilers.

C-Standard explizit angeben

Zieleigenschaften CXX_STANDARD und CXX_STANDARD_REQUIRED festlegen, um den gewünschten Standard anzugeben:

<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>

Erforderliche C-Funktionen angeben

Verwenden Sie target_compile_features, um bestimmte C-Funktionen anzugeben, und CMake leitet den entsprechenden Standard ab:

<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>

Unterstützte C-Funktionen

Der folgende Code listet die von Ihrer CMake-Version unterstützten C-Funktionen auf:

<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>

Das obige ist der detaillierte Inhalt vonWie kann ich mit CMake die C 11-Unterstützung in einem Compiler erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn