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

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

DDD
DDDOriginal
2024-12-17 00:02:25647Durchsuche

How to Add -fexceptions and Other Linker/Compiler Flags in CMake?

So integrieren Sie Linker und Kompilierungsflags in eine CMake-Datei

Beim Kompilieren mit dem Arm-Linux-Androideabi-G-Compiler wird eine Ausnahme hinzugefügt Die Handhabung erfordert die Einbeziehung des Flags -fExceptions. Während es über die Befehlszeile funktioniert, tritt das Problem auf, wenn versucht wird, mit einer CMake-Datei zu kompilieren.

Um das Flag -fExceptions in CMake hinzuzufügen, befolgen Sie diese Schritte:

  1. Konstante definieren: Deklarieren Sie die Flags als Konstante.
SET(CMAKE_EXCEPTIONS_FLAG "-fexceptions")
  1. An CMake-Variablen anhängen: Flag an die entsprechenden CMake-Variablen anhängen.
SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${CMAKE_EXCEPTIONS_FLAG}")
SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXCEPTIONS_FLAG}")
  1. Zieleigenschaften verwenden: Alternativ können Sie Zieleigenschaften verwenden, um die festzulegen Flags.
get_target_property(TEMP ${THE_TARGET} COMPILE_FLAGS)
if(TEMP STREQUAL "TEMP-NOTFOUND")
    SET(TEMP "")
else()
    SET(TEMP "${TEMP} ")
endif()
SET(TEMP "${TEMP}${CMAKE_EXCEPTIONS_FLAG}")
set_target_properties(${THE_TARGET} PROPERTIES COMPILE_FLAGS ${TEMP})

Durch die Implementierung dieser Schritte können Sie die erforderlichen Flags in Ihre CMake-Datei integrieren und Ihren Code erfolgreich mit der gewünschten Ausnahmebehandlungsfunktionalität kompilieren.

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