„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erkennt man die C++11-Compiler-Unterstützung in CMake?

Wie erkennt man die C++11-Compiler-Unterstützung in CMake?

Veröffentlicht am 06.11.2024
Durchsuche:311

How to Detect C  11 Compiler Support in CMake?

Erkennung der C 11-Compiler-Unterstützung in CMake

Übersicht

In diesem Leitfaden untersuchen wir Methoden zur automatischen Erkennung, ob ein Compiler darin C 11 unterstützt CMake bietet eine umfassende Analyse sowohl der neuesten als auch der vorherigen CMake-Versionen.

CMake 3.1.0 und höher

CMake Version 3.1.0 führte eine leistungsstarke Funktion ein: die Erkennung der von a unterstützten C-Funktionen Compiler. Dies wird durch den Befehl cmake_minimum_required erreicht:

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)

Durch Angabe der minimalen CMake-Version erhalten Sie Zugriff auf die Variable CMAKE_CXX_COMPILE_FEATURES, die alle unterstützten Versionen auflistet C-Funktionen. Dadurch können Sie den C-Standard bestimmen, der in Ihrem Projekt verwendet werden soll.

C-Standard explizit angeben

Mit CMake können Sie den C-Standard für ein Ziel mithilfe der Eigenschaften CXX_STANDARD und CXX_STANDARD_REQUIRED explizit festlegen. Zum Beispiel:

set_property(TARGET prog PROPERTY CXX_STANDARD 11)
set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)

Dadurch wird sichergestellt, dass der Compiler mit den richtigen Flags aufgerufen wird, z. B. -std=c 11.

Erforderliche C-Funktionen angeben

Alternativ können Sie die erforderlichen C-Features mit dem Befehl target_compile_features angeben. Aus dieser Liste kann CMake den entsprechenden C-Standard ableiten.

target_compile_features(foobar PRIVATE cxx_strong_enums cxx_constexpr cxx_auto_type)

Rufen Sie die Liste der unterstützten C-Funktionen mit CMAKE_CXX_KNOWN_FEATURES ab.

Fazit

CMake bietet mehrere Möglichkeiten, die C 11-Compiler-Unterstützung zu erkennen und den C-Standard anzugeben. Diese Flexibilität ermöglicht maßgeschneiderte C-Projektkonfigurationen und gewährleistet so Kompatibilität und nahtlose Kompilierung.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3