Linux系统下查看动态库依赖关系指令(ldd)

这篇具有很好参考价值的文章主要介绍了Linux系统下查看动态库依赖关系指令(ldd)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

下面介绍一下在Linux系统下利用ldd指令查看动态库依赖关系;

LDD用来打印或者查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。ldd不是一个可执行程序,而只是一个shell脚本。

使用ldd可以很方便的查看库与库之间的依赖关系,存放路径等等;对于排查链接不到库的问题很有帮助;

1、ldd命令全称

ldd命令全称为list dynamic dependencies(列出动态依赖),是Linux下常用的命令之一。它可以用来显示一个可执行文件或者共享库(动态链接库)所依赖的共享库。

2 ldd参数说明

  • –help 获取指令帮助信息;
  • –version 打印指令版本号;
  • -d,–data-relocs 执行重定位和报告任何丢失的对象;
  • -r, --function-relocs 执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;
  • -u, --unused 打印未使用的直接依赖;
  • -v, --verbose 详细信息模式,打印所有相关信息;

3 简单示例

ldd libEngineTask.so//查看libEngineTask.so所依赖的库

linux ldd,琐碎的编程相关知识汇总,程序人生
可以看到,libEngineTask.so库需要依赖libAIEngine.so,而libAIEngine.so的位置在./AI_lib/libAIEngine.so ,它的开始位置是0x00007f6928c7d000。

4 查看缺少的依赖库

如果当前的动态库因为缺少依赖库而无法链接,那么可以通过ldd查看缺少的依赖库。比如还是上面的例子,我去AI_lib路径下手动把libAIEngine.so删掉,再去执行ldd,结果如下
linux ldd,琐碎的编程相关知识汇总,程序人生
结果中可以看出,libEngineTask.so库需要依赖libAIEngine.so,而libAIEngine.so却找不到,方便排查。

5、ldd指令详细介绍

1、ldd是Linux中的一个重要命令,用于打印可执行文件或共享库所依赖的动态链接库信息。下面详细介绍ldd指令的功能和用法。

命令格式:
ldd [选项] <可执行文件或共享库>

2、功能描述:
ldd命令显示一个可执行文件或共享库所依赖的动态链接库列表。它会递归地检查文件所依赖的所有库,并显示它们的路径。通过ldd命令可以了解一个程序运行所需的库文件,以及这些库文件是否存在、版本是否匹配等信息。

3、常用选项:
-v, --verbose:显示详细的调试信息,包括版本号、加载方式等。
-u, --unused:只显示未使用的直接依赖库。
-r, --function-relocs:在关联库中显示函数的重定位信息。
-d, --data-relocs:在关联库中显示数据的重定位信息。
–help:显示帮助信息。
–version:显示版本信息。

4、使用示例:
(1) 查看可执行文件所依赖的库:
ldd /path/to/executable

(2) 查看共享库的依赖关系:
ldd /path/to/shared_library.so

(3) 显示详细的依赖库信息:
ldd -v /path/to/executable

(4) 只显示未使用的直接依赖库:
ldd -u /path/to/executable

(5) 显示函数和数据的重定位信息:
ldd -r /path/to/executable

5、输出解读:
对于每个所依赖的库,ldd会显示它的路径,并用以下格式标记其状态:
=> 文件路径:正常找到并链接。
=> not found:未找到该库文件。
=> version mismatch:版本不匹配。
=> incompatible:与可执行文件或其他库不兼容。
=> symbol not found:找不到某个符号。

另外,ldd命令还可以显示库所需的其他库。通过观察输出结果,在开发调试过程中可以及时了解和解决动态链接库的相关问题。

使用ldd命令可以帮助开发人员、系统管理员等快速了解程序运行所需的库文件是否存在、版本是否匹配,从而排查库依赖问题。在调试和部署过程中,ldd是一个非常有用的工具,能够提高开发效率和减少出错的可能性。文章来源地址https://www.toymoban.com/news/detail-595395.html

到了这里,关于Linux系统下查看动态库依赖关系指令(ldd)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统中查看CPU或内存信息的常用指令:

    top:实时显示系统中各个进程的资源占用情况,包括CPU占用率、内存占用率等。 htop:类似于 top,但是显示更为详细的信息,支持鼠标操作。 cat /proc/cpuinfo:查看CPU的详细信息,包括CPU型号、主频、核数等。 free:显示系统内存使用情况,包括空闲内存、已用内存、缓存等。

    2024年02月13日
    浏览(31)
  • 深入了解Linux下的dmesg指令:查看系统内核日志的利器

    简介: 在Linux系统中,了解系统的内核信息和故障诊断是至关重要的。而dmesg指令就是一个强大的工具,它可以帮助我们查看系统内核的日志信息,了解系统的运行状态和故障原因。本篇博客将以通俗易懂的方式,详细解析dmesg指令的功能和用法,并提供示例代码和参考链接,

    2024年02月08日
    浏览(44)
  • Linux系统下查看网卡配置和网络流量监控指令:ifconfig、ethtool

    ifconfig 查看所有活动网卡信息 ifconfig -a 查看所有网卡信息 ifconfig eth0 查看具体网卡信息 ifconfig eth0 up/down 激活/禁用网卡 ifup/ifdown eth0 激活/禁用网卡(重新读取配置文件) ip //查看ip指令使用参数 ip addr ethtool bond0 //查看bond0网口的配置信息 ethtool eth0 //查看bond0网口的配置信息

    2024年02月06日
    浏览(35)
  • linux dmidecode命令(dmidecode指令)DMI (Desktop Management Interface) 数据、桌面管理接口数据、查看系统信息、查看硬件信息、设备序列号

    dmidecode 是一个在 Linux 系统下获取硬件信息的工具。它允许用户查看计算机硬件的详细信息,包括制造商、产品名称、序列号等。这个命令能够解析和显示计算机的 DMI (Desktop Management Interface) 数据。 在大多数 Linux 发行版中, dmidecode 都是预装的。如果没有预装,可以使用系统

    2024年04月11日
    浏览(33)
  • Linux :: 内容过滤指令【3】:grep 指令【详解】:在指定文件中过滤搜索信息、(模糊)查找包含指定字符串的内容!(如:系统故障时,查看操作日志信息等情景)

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 注:find 指令常与 grep 指令在面试中被提及,需让你回答异同! 目录索引: 1. 基本语法、功能及使

    2024年02月09日
    浏览(45)
  • Linux查找指令 && 时间查看

    我们在windows中想要看一下时间,我们可以直接在显示器上看到,但是如果我们用的是linux远程登录软件我们像查看一下时间,我们应该怎么做? 我们直接输入date,我们就可以看到当前的时间,不过这个是系统按照自己的格式给我们显示的,我们并不像这样看时间怎么做?

    2024年02月04日
    浏览(31)
  • 【Linux指令④】Linux查看日历、时间、打包压缩文件、Linux中的计算器,常用热键 关机指令

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:Linux入门到精通 🎉代码仓库:小智的代码仓库 【语法】 : date [OPTION] ... [+FORMAT] 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后面结束个标记,其中常用的标记列表如下 %H

    2024年02月05日
    浏览(27)
  • LDD学习笔记 -- Linux字符设备驱动

    字符驱动程序用于与Linux内核中的设备进行交互; 字符设备指的是像内存区域这样的硬件组件,通常称为伪设备; 用户空间应用程序通常使用 open read write 等系统调用与这些设备通信; 把用户空间的系统调用连接到设备驱动的系统调用实现方法上。 内核的虚拟文件系统 vir

    2024年02月02日
    浏览(32)
  • Linux--ssh基本指令与日志查看

    1、强制登录 -t 表示 Force pseudo-tty allocation, 2、ssh连接到其他端口 SSH 默认连接到目标主机的 22 端口上,可以使用-p选项指定端口号 3、使用ssh在远程主机执行一条命令并显示到本地, 然后继续本地工作 直接连接并在后面加上要执行的命令就可以了 4、在远程主机运行一个图形

    2024年02月08日
    浏览(37)
  • Linux下基本指令 -> ls指令 查看目录结构和文件信息

    ​  博主: 星尘不会落  博主主页:https://blog.csdn.net/zhanghgh  如果编写的博客中有任何错误,请指出,我会第一时间核实并更改。  该博客可能会随着博主的技术增进而改进。  Linux ls(英文全拼: list directory contents )命令用于显示指定工作目录下之内容(列出目前工作

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包