C++ 动态库查找流程

RPATH: run-time search path

  • 规定了可执行文件在寻找.so文件时的第一优先位置

搜索.so的优先级顺序

  • RPATH: 写在elf文件中
  • LD_LIBRARY_PATH: 环境变量
  • RUNPATH: 写在elf文件中
  • ldconfig的缓存: 配置 /etc/ld.conf* 可改变
  • 默认的 /lib, /usr/lib

查看RPATH

  • readelf -d xxx | grep 'R*PATH' 来查看

$ORIGIN标识符

  • 代表elf文件自身所在的目录。可以利用$ORIGIN 设置RPATH。
posted @ 2023-11-01 23:52  橙皮^-^  阅读(73)  评论(0)    收藏  举报