使用CMake启用RUNPATH特性
使用CMake,启用RUNPATH特性,可以参考官方帖子。如下源码来自于上述帖子。
CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
PROJECT(RUNPATH C)
SET(CMAKE_VERBOSE_MAKEFILE ON)
SET(CMAKE_INSTALL_RPATH $ENV{HOME}/lib)
FILE(WRITE ${CMAKE_BINARY_DIR}/main.c "int main(void){return 0;}\n")
ADD_EXECUTABLE(main main.c)
INSTALL(TARGETS main RUNTIME DESTINATION bin)
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags")关于CMake和RPATH,可以参考如下文档:
[*]RPATH handling
[*]CMAKE_SKIP_RPATH
[*]CMAKE_SKIP_BUILD_RPATH
[*]CMAKE_SKIP_INSTALL_RPATH
[*]CMAKE_BUILD_WITH_INSTALL_RPATH
[*]CMAKE_INSTALL_RPATH_USE_LINK_PATH
[*]INSTALL_RPATH
[*]CMAKE_INSTALL_RPATH
[*]探讨CMake中关于RPATH的使用
[*]再谈CMake与RPATH
关于RPATH和RUNPATH的区别,可以参考如下文章,介绍比较详细。
[*]RPATH与RUNPATH的区别
[*]RPATH和RUNPATH区别
在命令行,执行如下命令,来查看相关的RPATH信息。
readelf -d executable在命令行,执行如下命令,可以查看当前查找到的动态库。
ldd executableRPATH、RUNPATH、LD_LIBRARY_PATH三者之间的关系。
[*]RPATH > LD_LIBRARY_PATH > RUNPATH
[*]当RUNPATH存在时,则RPATH失效。
RUNPATH不适用于间接依赖的库,使用RUNPATH时,可能需要配合使用LD_LIBRARY_PATH。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]