小编典典

如何列出非本地二进制文件的库依赖关系?

linux

在针对本机平台进行开发时,我可以使用ldd列出所有共享库(.so文件),这些文件是我构建的二进制可执行文件,将在启动时尝试加载。但是在交叉编译时,我不知道如何获取相同的信息。在ldd不正常的binutils工具,像strip或者ar,可以一起建立gcc了交叉编译,而是,这是一个神秘的shell脚本,显然只能在本地平台上运行。

因此,使用跨目标binutils工具,是否有任何方法可以获取外部二进制文件的动态链接依赖关系列表?


阅读 422

收藏
2020-06-03

共1个答案

小编典典

有没有办法获取外来二进制文件的动态链接依赖关系的列表

您可以很容易地列出二进制文件的 直接 依赖关系:

readelf -d a.out | grep NEEDED

 0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]

我知道没有办法递归地继续此操作以获取完整列表(ldd确实如此)。您必须NEEDED手动为每个库重复此过程。

2020-06-03