使用CMake启用RUNPATH特性

打印 上一主题 下一主题

主题 910|帖子 910|积分 2730

使用CMake,启用RUNPATH特性,可以参考官方帖子
如下源码来自于上述帖子。
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
  2. PROJECT(RUNPATH C)
  3. SET(CMAKE_VERBOSE_MAKEFILE ON)
  4. SET(CMAKE_INSTALL_RPATH $ENV{HOME}/lib)
  5. FILE(WRITE ${CMAKE_BINARY_DIR}/main.c "int main(void){return 0;}\n")
  6. ADD_EXECUTABLE(main main.c)
  7. INSTALL(TARGETS main RUNTIME DESTINATION bin)
  8. SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-new-dtags")
复制代码
关于CMake和RPATH,可以参考如下文档:
关于RPATH和RUNPATH的区别,可以参考如下文章,介绍比较详细。
在命令行,执行如下命令,来查看相关的RPATH信息。
  1. readelf -d executable
复制代码
在命令行,执行如下命令,可以查看当前查找到的动态库。
  1. ldd executable
复制代码
RPATH、RUNPATH、LD_LIBRARY_PATH三者之间的关系。

  • RPATH > LD_LIBRARY_PATH > RUNPATH
  • 当RUNPATH存在时,则RPATH失效。
RUNPATH不适用于间接依赖的库,使用RUNPATH时,可能需要配合使用LD_LIBRARY_PATH。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表