使用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中文网其他相关文章!