Linux中使用lld命令输出可执行文件的依赖库

文章介绍了ldd,一个在Linux和macOS上用于检查可执行文件或动态库依赖的命令行工具,它显示依赖库的名称、版本和路径,以及一些高级选项如详细输出、未使用依赖检测和重定位信息查看,尽管并非真正的调试器,但对开发者非常实用。
摘要由CSDN通过智能技术生成

ldd 是一个在类 Unix 系统(包括 Linux 和 macOS)中常用的命令行工具,它的全称是“Dynamic Linker Debugger”。这个命令用于检查可执行文件或动态库的共享库依赖关系。当你运行 ldd 并提供一个可执行文件作为参数时,它会显示该文件运行时所依赖的所有动态链接库(.so 文件),以及这些库在系统中的路径。

使用示例:

ldd /path/to/executable_or_library

在这里插入图片描述

输出信息包括每个依赖库的名字、当前使用的版本以及其所在路径。如果某个依赖库没有找到或者存在其他问题,ldd 会在相应行前面显示一个状态标识,如 (not found) 或者描述错误的具体原因。

以下是它的一些常用参数:

  1. -v 或 --verbose: 显示详细信息,包括每个库的完整路径、版本信息以及其他详细输出。
  2. -u 或 --unused: 显示未使用的直接依赖项,即那些在可执行文件或库中被引用但实际运行时并未调用到的共享库。
  3. -d 或 --data-relocs: 对ELF格式的目标文件进行数据重定位,并报告缺少的目标对象。这个选项主要对调试有用。
  4. -r 或 --function-relocs(在某些版本的ldd中): 这个选项是“read relocs”的缩写,表示读取并显示重定位信息。使用 -r 时,ldd 不仅会列出程序的共享库依赖,还会尝试解析和显示重定位条目,这对于调试程序可能很有帮助,因为它能提供更多关于程序内部结构和符号引用的信息。![对目标对象和函数执行重新部署,并报告缺少的目标对象和函数。同样主要用于调试目的。
  5. –version: 打印 ldd 命令自身的版本信息。

注意:尽管名字中有 “Debugger”,但 ldd 并不是一个真正的调试器,它并不执行程序代码,只是静态地分析二进制文件的依赖情况。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值