Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann CMake zur automatischen Erkennung und Konfiguration der C 11-Kompatibilität verwendet werden?

Barbara Streisand
Freigeben: 2024-10-30 09:10:27
Original
729 Leute haben es durchsucht

How can CMake be Used to Automatically Detect and Configure C  11 Compatibility?

Automatisierung der C 11-Kompatibilitätserkennung in CMake

Problem:

Wie kann CMake genutzt werden? C 11-Kompatibilität in einem Projekt automatisch erkennen und konfigurieren?

Lösung:

CMake Version 3.1.0 und höher:

Mit CMake Version 3.1.0 oder höher ermöglicht das folgende Code-Snippet die Erkennung von C-Funktionen, die vom Compiler unterstützt werden:

<code class="cmake">cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
project(foobar CXX)
message("Your C++ compiler supports these C++ features:")
foreach(i ${CMAKE_CXX_COMPILE_FEATURES})
  message("${i}")
endforeach()</code>
Nach dem Login kopieren

Konfigurieren von C-Standards:

Anstelle der manuellen Erkennung bietet CMake zwei Methoden zum Deklarieren des C-Standards für die Kompilierung:

Explizite Standardspezifikation:

Legen Sie die Zieleigenschaften fest CXX_STANDARD und CXX_STANDARD_REQUIRED, um den C-Standard explizit anzugeben:

<code class="cmake">set_property(TARGET prog PROPERTY CXX_STANDARD 11)
set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)</code>
Nach dem Login kopieren

Funktionsabhängige Standarderkennung:

Verwendung von target_compile_features die für das Projekt erforderlichen C-Funktionen an. CMake leitet den entsprechenden C-Standard aus diesen Funktionen ab:

<code class="cmake">target_compile_features(foobar PRIVATE
    cxx_strong_enums
    cxx_constexpr
    cxx_auto_type)</code>
Nach dem Login kopieren

Zusätzliche Funktionalität:

Die globale CMake-Eigenschaft

CMAKE_CXX_KNOWN_FEATURES stellt eine Liste von bereit bekannte C-Funktionen. Dies ermöglicht die Erkennung der spezifischen Funktionen, die vom Compiler unterstützt werden.

Das obige ist der detaillierte Inhalt vonWie kann CMake zur automatischen Erkennung und Konfiguration der C 11-Kompatibilität verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage