假设我有一个二进制文件test
,它使用共享库
a.so
b.so
c.so
我无法运行二进制文件,因为其中一个链接库链接了另一个似乎d.so
是罪魁祸首的库。但是我不知道哪个库是链接它的库,因为实际上有 20 个库而不是 3 个,而且浏览所有库非常耗时。ldd
只为您提供二进制直接链接的库列表。
最重要的是,它似乎不是一个间接级别,而是几个。换句话说,它似乎有类似的东西a.so -> x.so -> blabla.so -> d.so
。
是否有一些聪明的方法可以可视化整个依赖关系图或如何找到导致库的确切依赖关系链d.so
?
换句话说,我想要的是这样的:
a.so -> something.so
-> second.so
-> third.so
b.so -> x.so -> blabla.so -> d.so
-> stuff.so
c.so -> something.else -> yetanotherlib.so
或者我想说我想找到的简化版本,如何d.so
链接到二进制文件并且它会吐出
a.so -> x.so -> blabla.so -> d.so
我希望这是有道理的。
你想要的是
ldd -v
- 这将详细地指示依赖链。