使用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和RUNPATH的区别,可以参考如下文章,介绍比较详细。
在命令行,执行如下命令,来查看相关的RPATH信息。在命令行,执行如下命令,可以查看当前查找到的动态库。RPATH、RUNPATH、LD_LIBRARY_PATH三者之间的关系。
- RPATH > LD_LIBRARY_PATH > RUNPATH
- 当RUNPATH存在时,则RPATH失效。
RUNPATH不适用于间接依赖的库,使用RUNPATH时,可能需要配合使用LD_LIBRARY_PATH。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |