Heim > Backend-Entwicklung > C++ > Wie füge ich Compiler- und Linker-Flags in CMake hinzu?

Wie füge ich Compiler- und Linker-Flags in CMake hinzu?

Barbara Streisand
Freigeben: 2024-12-20 16:43:17
Original
711 Leute haben es durchsucht

How to Add Compiler and Linker Flags in CMake?

Hinzufügen von Linker- und Compiler-Flags in CMake-Dateien

Beim Kompilieren von C-Programmen ist es oft notwendig, bestimmte Flags hinzuzufügen, um das Verhalten von zu steuern der Compiler oder Linker. In CMake können diese Flags mithilfe verschiedener Mechanismen zum Projekt hinzugefügt werden.

Kompilierungsflags hinzufügen

  • CMAKE_C_FLAGS festlegen: Dies wird festgelegt die Kompilierungsflags für C-Code.
  • Verwenden add_definitions:Flags können direkt zur Zieldefinition hinzugefügt werden, ohne CMake-Variablen zu ändern.

Beispiel:

set(CMAKE_C_FLAGS "-fexceptions")
Nach dem Login kopieren

Linker-Flags hinzufügen

  • Einstellung CMAKE_EXE_LINKER_FLAGS: Dies setzt die Linker-Flags für ausführbare Dateien.
  • Verwendung von set_target_properties: Ermöglicht das Festlegen zielspezifischer Eigenschaften, einschließlich Linker Flags.

Beispiel:

set(CMAKE_EXE_LINKER_FLAGS "-lgcov")
Nach dem Login kopieren

Spezifisches Beispiel für -fExceptions

Um das Flag -fExceptions hinzuzufügen, können Sie ein beliebiges verwenden der folgenden Methoden:

  • Methode 1 (Veraltet):
set(CMAKE_EXE_LINKER_FLAGS "-fexceptions")
Nach dem Login kopieren
  • Methode 2 (bevorzugt):
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions")
Nach dem Login kopieren
  • Methode 3 (Verwenden von Target Eigenschaften):
get_target_property(TARGET_COMPILE_FLAGS <target> COMPILE_FLAGS)
if(NOT TARGET_COMPILE_FLAGS)
  set(TARGET_COMPILE_FLAGS "")
endif()
set_target_properties(<target> PROPERTIES COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} -fexceptions")
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie füge ich Compiler- und Linker-Flags in CMake hinzu?. 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