ldd查看依赖关系
来源:互联网 发布:班车路线查询软件 编辑:程序博客网 时间:2024/05/22 13:08
通过readelf 或者objdump可以查看某一个可执行文件所依赖的共享库,而且这些共享库都是作为SONAME记录在ELF动态节的NEEDED上。
首先,我们看一下名词soname:
在linux上共享库都是以文件的形式来存放,而每一个共享库都被赋予了一个特别的名称,linux称之为soname。它包括了共享库的名称和版本号.然而这个soname只是一个软连接,它指向的文件才是真正的库文件。例如/lib/libc.so.6就是一个soname,它指向了 libc-2.10.1.so。这个软连接是由ldconfig创建的,ldconfig默认情况下会搜索/etc/ld.so.conf,里面有存放.so.x.x库文件的目录,ldconfig会遍历这些目录然后对它下面的库建立软连接。
下面用例子来看库的依赖关系:
如上所示,NEEDED里记录的是库SONAME,如果要查找实际的文件,则在/usr/lib, /lib下如存在soname的文件. 或者在LD_LIBRARY_PATH里指定查找路径; 若是在/etc/ld.so.cache里有实际库文件的信息。
当然,上面的共享库还可能依赖于其他库.比如librt.so.1
如果要找到/bin/ls所依赖的所有库文件,是一件很麻烦的事,所以就有了ldd命令。
这里就列出所有/bin/ls所依赖的共享库。实际上,ldd只是一个shell脚本。重点是LD_TRACE_LOADED_OBJECTS,把环境变量LD_TRACE_LOADED_OBJECTS设定为1来执行程序
但是ldd命令不可随便使用,它存在着潜在的危险,可以参考此文。
- ldd查看依赖关系
- ldd 查看程序依赖库
- ldd 查看程序依赖库
- 查看程序依赖的sl:ldd
- ldd查看可执行程序的依赖库
- linux ldd 查看依赖的库文件
- 查看可执行文件依赖的动态库 ldd
- SQLServer 查看依赖关系
- ldd命令 查看程序所依赖的共享库。
- ldd命令--查看命令依赖的库文件
- 查看某个库文件的依赖情况ldd命令
- 用ldd查看C++程序的依赖库
- ldd命令查看动态库依赖的库
- Android下怎么使用LDD查看依赖库
- Linux ldd -- 查看可执行文件所依赖的动态链接库
- ldd 查看可执行文件所依赖的库有哪些
- linux命令之查看程序动态库依赖-ldd
- linux 查看库依赖关系
- NNM内置的数据库Solid定期备份配置方法
- 1.1 开始
- FTP报Inode 是远程的错误信息
- 【探索wireshark】 熟悉GTK+
- 在Eclipse中构建Heritrix1.14.4
- ldd查看依赖关系
- MIME邮件格式分析及信息提取
- 用SecureCRT来上传和下载数据
- Exp時遭遇 EXP-00008 ORA-00942 EXP-00024 EXP-00000
- Ubuntu下配置一个高效的PHP开发环境GVIM
- C/C++函数调用时的参数传递小结
- 计算机仿真中的HLA技术 (第四章读书笔记)
- vc鼠标移动改变字体颜色
- 读取并修改App.config文件(转载)