Heim >Backend-Entwicklung >C++ >Wie füge ich Linker- oder Kompilierungsflags in CMake korrekt hinzu?
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.
Um Linker- oder Kompilierungsflags in einer CMake-Datei hinzuzufügen, befolgen Sie diese Schritte:
Definieren Sie die Flags:Verwenden Sie die folgenden Befehle, um das Flag -fExceptions zu definieren:
SET(FLAG_NAME -fexceptions)
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}")
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}")
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})
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!