Heim > Backend-Entwicklung > C++ > Wie füge ich Linker- oder Kompilierungsflags in CMake korrekt hinzu?

Wie füge ich Linker- oder Kompilierungsflags in CMake korrekt hinzu?

Linda Hamilton
Freigeben: 2024-12-26 02:34:10
Original
223 Leute haben es durchsucht

How to Correctly Add Linker or Compile Flags in CMake?

So fügen Sie Linker hinzu oder kompilieren Flags in einer CMake-Datei

Problemstellung

Beim Kompilieren eines einfachen Programms mit Ausnahmebehandlung unter Verwendung von arm-linux -androideabi-g-Compiler muss das Flag -fExceptions hinzugefügt werden, um die Ausnahmebehandlung zu ermöglichen. Versuche, dieses Flag über CMake mit set(CMAKE_EXE_LINKER_FLAGS) oder set(CMAKE_C_FLAGS) hinzuzufügen, führen jedoch zu einem Fehler.

Lösung

Um Linker- oder Kompilierungsflags in einer CMake-Datei hinzuzufügen, befolgen Sie diese Schritte:

  1. Definieren Sie die Flags:Verwenden Sie die folgenden Befehle, um das Flag -fExceptions zu definieren:

    SET(FLAG_NAME -fexceptions)
    Nach dem Login kopieren
  2. An CMake-Variablen anhängen:Fügen Sie das Flag zu den relevanten CMake-Variablen hinzu . Für Compiler-Flags:

    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG_NAME}")
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG_NAME}")
    Nach dem Login kopieren

    Für Linker-Flags:

    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG_NAME}")
    SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLAG_NAME}")
    Nach dem Login kopieren
  3. Zieleigenschaften verwenden: Alternativ können Sie Zieleigenschaften verwenden:

    get_target_property(TEMP ${TARGET} COMPILE_FLAGS)
    if(TEMP STREQUAL "TEMP-NOTFOUND")
      SET(TEMP "")
    else()
      SET(TEMP "${TEMP} ")
    endif()
    SET(TEMP "${TEMP}${FLAG_NAME}")
    set_target_properties(${TARGET} PROPERTIES COMPILE_FLAGS ${TEMP})
    Nach dem Login kopieren
  4. Wählen Sie eine Methode: Wählen Sie je nach Ihren Vorlieben eine der bereitgestellten Methoden aus. Methode 2 wird im Allgemeinen empfohlen.

Durch Befolgen dieser Schritte können Sie erfolgreich Linker- oder Kompilierungsflags in einer CMake-Datei hinzufügen und das Problem der Aktivierung der Ausnahmebehandlung mit dem Flag -fExceptions lösen.

Das obige ist der detaillierte Inhalt vonWie füge ich Linker- oder Kompilierungsflags in CMake korrekt 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