使用arm-linux 編譯帶有異常處理的簡單程式時-androideabi-g 編譯器,必須新增-fexceptions 標誌才能啟用異常處理。但是,嘗試使用 set(CMAKE_EXE_LINKER_FLAGS) 或 set(CMAKE_C_FLAGS) 透過 CMake 新增此標誌會導致錯誤。
要在CMake 檔案中加入連結器或編譯標誌,請依照下列步驟操作步驟:
定義標誌: 使用以下指令定義-fexceptions標誌:
SET(FLAG_NAME -fexceptions)
附加到 CMake 變數: 將標誌加入相關的 CMake 變數。對於編譯器標誌:
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG_NAME}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG_NAME}")
對於連結器標誌:
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG_NAME}") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLAG_NAME}")
使用目標屬性: 或者,您可以使用目標屬性:
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})
按照以下步驟,您可以成功在 CMake 檔案中新增連結器或編譯標誌,並解決使用 -fexceptions 標誌啟用異常處理的問題。
以上是如何在CMake中正確加入連結器或編譯標誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!