linux 动态链接库 依赖,动态链接库的路径及依赖

1、依赖查询

1.1 objdump

一个 动态库还可能依赖别的动态库,可用以下命令去查询[7]:

$ objdump -x libxxxxx.so | grep NEEDED 以libpng12.so.0为例,查询结果如下:

liyihai@ubuntu:/lib/i386-linux-gnu$ objdump -x libpng12.so.0 | grep NEEDED

NEEDED libz.so.1

NEEDED libm.so.6

NEEDED libc.so.6

1.2 ldd[11]

还可以直接使用ldd命令查看动态库的依赖关系:

ldd libXXX.so

2、-L、-rpath、-rpath-link

就算使用第1章的方法找到了libpng12.so.0所依赖的库,而且放到和libpng12.so.0同一个目录中,编译时还是可能找不到。使用-L可以指定可执行文件编译时需要的库目录,而动态库依赖于其它库的目录需要使用-rpath、rpath-link来指定[9]。

由于-rpath、rpath-link都是ld的参数,而不是gcc的,因此如果是gcc中使用这两个参数,要使用-Wl选项[10],例如:

$gcc hello.c -Wl,-rpath-link /usr/local/lib

3、函数

如果知道.so中包含了那些函数呢?,以libc.so.6为例,使用以下命令可以查找其中包含的函数[1]。

$ readelf -s libc.so.6

参考资料

总结

以上是编程之家为你收集整理的动态链接库的路径及依赖全部内容,希望文章能够帮你解决动态链接库的路径及依赖所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值