ldd命令 ubuntu_技术|简单介绍 ldd 命令

如果您的工作涉及到 Linux 中的可执行文件和共享库的知识,则需要了解几种命令行工具。其中之一是 ldd ,您可以使用它来访问共享对象依赖关系。在本教程中,我们将使用一些易于理解的示例来讨论此实用程序的基础知识。

请注意,这里提到的所有示例都已在 Ubuntu 16.04 LTS 上进行了测试。

Linux ldd 命令

正如开头已经提到的,ldd 命令打印共享对象依赖关系。以下是该命令的语法:

ldd [option]... file...

下面是该工具的手册页对它作出的解释:

ldd 会输出命令行指定的每个程序或共享对象所需的共享对象(共享库)。

以下使用问答的方式让您更好地了解ldd的工作原理。

问题一、 如何使用 ldd 命令?

ldd 的基本用法非常简单,只需运行 ldd 命令以及可执行文件或共享对象的文件名称作为输入。

ldd [object-name]

例如:

ldd test

d58e127c2f055bad463c67dc709fe7a0.png

所以你可以看到所有的共享库依赖已经在输出中产生了。

Q2、 如何使 ldd 在输出中生成详细的信息?

如果您想要 ldd 生成详细信息,包括符号版本控制数据,则可以使用 -v 命令行选项。例如,该命令

ldd -v test

当使用 -v 命令行选项时,在输出中产生以下内容:

efb88bac298d539242d7f73fbd6ac0da.png

Q3、 如何使 ldd 产生未使用的直接依赖关系?

对于这个信息,使用 -u 命令行选项。这是一个例子:

ldd -u test

259c17637496748ca7a3bf20738eed84.png

Q4、 如何让 ldd 执行重定位?

您可以在这里使用几个命令行选项:-d 和 -r。 前者告诉 ldd 执行数据重定位,后者则使 ldd 为数据对象和函数执行重定位。在这两种情况下,该工具都会报告丢失的 ELF 对象(如果有的话)。

ldd -d

ldd -r

Q5、 如何获得关于ldd的帮助?

--help 命令行选项使 ldd 为该工具生成有用的用法相关信息。

ldd --help

0fba3ddedd97582f6eaeb8a58b491d84.png

总结

ldd 不像 cd、rm 和 mkdir 这样的工具类别。这是因为它是为特定目的而构建的。该实用程序提供了有限的命令行选项,我们在这里介绍了其中的大部分。要了解更多信息,请前往 ldd 的手册页。

本文由 LCTT 原创编译,Linux中国 荣誉推出 linisi.svg

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`ldd` 命令是查看可执行文件或共享库文件依赖关系的工具,它可以帮助您确定哪些共享库文件被程序所依赖。但是,`ldd` 命令本身并不能修复损坏的共享库文件。如果您的共享库文件已经损坏,您可以尝试使用以下步骤修复它: 1. 确认共享库文件确实已经损坏: 运行 `ldd` 命令,以确定程序依赖的库文件是否已经损坏。例如,运行以下命令: ``` ldd /path/to/your/program ``` 如果您看到 `not found` 或 `error` 的错误消息,那么您的共享库文件可能已经损坏。 2. 备份损坏的共享库文件: 在尝试修复共享库文件之前,请先备份它,以防止进一步损坏或数据丢失。 ``` sudo cp /path/to/your/broken/library /path/to/backup/directory ``` 3. 重新安装损坏的共享库文件: 如果您知道共享库文件来自哪个软件包,您可以尝试重新安装该软件包,以覆盖损坏的库文件。例如,在 Ubuntu 上,您可以使用以下命令重新安装软件包: ``` sudo apt-get --reinstall install package-name ``` 如果您不知道共享库文件来自哪个软件包,您可以尝试使用以下命令来查找: ``` sudo apt-file search library-name ``` 4. 使用相同版本的共享库文件替换损坏的文件: 如果您没有找到损坏的共享库文件的备份或无法重新安装它,您可以尝试从另一个相同版本的系统中复制该共享库文件。请确保您选择的库文件与您的系统架构(如 x86_64)兼容。 ``` sudo cp /path/to/working/library /path/to/your/broken/library ``` 5. 运行 `ldconfig` 命令: `ldconfig` 命令是用于更新共享库缓存的工具。在替换共享库文件后,您可以运行以下命令,以使系统更新缓存并重新链接库文件: ``` sudo ldconfig ``` 请注意,在尝试上述任何操作之前,请备份您的系统和数据,并确保您了解您正在执行的操作的所有风险和影响。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值