使用CMake启用RUNPATH特性
  s5EH7MiXPf4U 2023年12月31日 28 0
C++

使用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,可以参考如下文档:

关于RPATHRUNPATH的区别,可以参考如下文章,介绍比较详细。

在命令行,执行如下命令,来查看相关的RPATH信息。

readelf -d executable

在命令行,执行如下命令,可以查看当前查找到的动态库。

ldd executable

RPATHRUNPATHLD_LIBRARY_PATH三者之间的关系。

  • RPATH > LD_LIBRARY_PATH > RUNPATH
  • RUNPATH存在时,则RPATH失效。

RUNPATH不适用于间接依赖的库,使用RUNPATH时,可能需要配合使用LD_LIBRARY_PATH

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月31日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   2024年05月01日   82   0   0 C++
  BYaHC1OPAeY4   2024年05月08日   58   0   0 C++
  yZdUbUDB8h5t   2024年05月05日   44   0   0 C++
  oXKBKZoQY2lx   2024年05月17日   61   0   0 C++
s5EH7MiXPf4U