Linux平台关于可执行程序的动态库加载路径(rpath)的查看与修改

对于可执行程序的动态库加载路径rpath(run path),我们可以通过工具来查看,也可以去修改,避免多次编译。

这里介绍两个Linux平台来查询和修改rpath的工具

1. chrpath(change run path)

一般系统不会此工具,需要自己安装,例如CentOS平台安装该工具的命令如下:

sudo yum install chrpath

查询rpath:

chrpath -l path/to/executable
或
readelf -d executable |grep RPATH

修改rpath:

chrpath -r "\$ORIGIN:\$ORIGIN/lib:\$ORIGIN/../lib" executable

-r后边跟的是路径,多个路径用冒号隔开,executable是可执行文件。

chrpath的更多用法可通过 chrpath --help 来查看。

注意:如果编译时没有指定rpath,那使用chrpath来改变rpath的值有可能会报错,此时可以使用下边的第二种工具。

2. patchelf

该工具系统一般也不会自带,需要自行安装,我是通过源码编译安装。

源码可从git上下载:https://github.com/NixOS/patchelf/archive/refs/tags/0.12.tar.gz

也可从我的资源中下载:https://download.csdn.net/download/u013992330/16792590

编译安装步骤:

wget https://github.com/NixOS/patchelf/archive/refs/tags/0.12.tar.gz
tar -xvf patchelf-0.12.tar.gz
cd patchelf-0.12
./bootstrap.sh
./configure
make
sudo make install

查询rpath:

# patchelf主要用来修改rpath,因此读取rpath还是得用readelf
readelf -d executable |grep RPATH

修改rpath:

patchelf --set-rpath "\$ORIGIN:\$ORIGIN/lib:\$ORIGIN/../lib" executable

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

password-u

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值