- 直接修改指定文件方法
macro(change_exe_rpath EXE_PATH)
#读取rpath: readelf -d <file_name> |grep rpath
file(READ_ELF "${EXE_PATH}" RPATH rpath_var RUNPATH runpath_var CAPTURE_ERROR error_var)
string(JOIN ":" RPATH_VAR ${rpath_var})
set(MY_RPATH "$ORIGIN/lib")
string(COMPARE NOTEQUAL "${MY_RPATH}" "${RPATH_VAR}" CHANGE_RPATH)
if(CHANGE_RPATH)
file(RPATH_CHANGE
FILE "${EXE_PATH}"
OLD_RPATH "${RPATH_VAR}"
NEW_RPATH "${MY_RPATH}")
endif()
endmacro()
- 修改工程文件rpath方法之一
SET_TARGET_PROPERTIES(hello PROPERTIES BUILD_RPATH "$ORIGIN")