Linux 查看依赖库

Linux 查看依赖库,第1张

1.查看依赖的库:

objdump -x xxx.so | grep NEEDED

2.查看可执行程序依赖的库:

objdump -x 可执行程序名 | grep NEEDED

3.查看缺少的库:

ldd xxx.so

4.查看库版本编译等信息:

strings xxx.so

-L -rpath -rpath-link 添加动态库路径

Linux系统和其他 *** 作系统一样,都是模块化的设计,也就是说功能互相依靠,有些功能需要一些其他功能来支撑,这样可以提高代码的可重用性:

大部分依赖包都是一些库文件,有动态库也有静态库,一个程序的依赖包如果没有安装,只安装了这个程序本身是不能使用

你可以理解为似windows的库文件,譬如DLL

比如我要装某个软件,这个软件又依赖于某个开发包,这个开发包包含这个软件所要运行

的环境文件,这就是依赖关系

再举个例子,比如我要去优酷看视频一样。

我就需要需要装flash。因为优酷的播放器是基于flash开发的。

你想知道什么?

依赖关系最简单的一个理解就是 Windows 上你玩游戏结果提示 directx 版本过低无法运行。以及常见的运行某个程序之后提示 mfc71.dll 未找到。还有就是用个软件结果安装说明上让你先去安装 .net 。

Linux 的依赖关系因为他的整个系统都是由各个不同的开发组开发的软件集合而成(这点不知道电话是不可能理解Linux依赖关系的起因的),每个软件都有不同的功能提供和调用。而 Linux 因为他的软件包组成可以很灵活,某些软件包不是必须的,有些软件功能可以有很多软件进行提供。所以有些软件互相之间的功能需求就需要“依赖关系”这种描述来进行说明控制。

Windows 也有这个问题,只不过因为整个系统是微软统一提供的,所以他可以进行版本接口公职,以及方便的通知附带多个版本的函数库和程序进行功能提供,以及强行的提供一些用户其实根本不需要的软件来提供Windows程序的“依赖关系”。依赖关系很明显的就是一些超高精简的 XP 去掉的内容会导致很多软件不能运行。可以说,简单的去掉 IE ,就可以让很多 Windows 程序失去依赖关系而不能运行。

Linux 的软件包管理器就是有解决这个问题而设计的原因。软件包管理器通过分析软件包里面的描述信息和系统当前安装情况的数据库来确定依赖关系是否满足和如何满足依赖关系(也就是需要再安装哪些软件才行)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/6045963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-12
下一篇 2023-03-12

发表评论

登录后才能评论

评论列表(0条)

保存