如何列出非本地二进制文件的库依赖关系?
在针对本机平台进行开发时,我可以使用ldd列出所有共享库(.so文件),这些文件是我构建的二进制可执行文件,将在启动时尝试加载。但是在交叉编译时,我不知道如何获取相同的信息。在ldd
不正常的binutils工具,像strip
或者ar
,可以一起建立gcc
了交叉编译,而是,这是一个神秘的shell脚本,显然只能在本地平台上运行。
因此,使用跨目标binutils工具,是否有任何方法可以获取外部二进制文件的动态链接依赖关系列表?
回答:
有没有办法获取外来二进制文件的动态链接依赖关系的列表
您可以很容易地列出二进制文件的 直接 依赖关系:
readelf -d a.out | grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [librt.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
我知道没有办法递归地继续此操作以获取完整列表(ldd
确实如此)。您必须NEEDED
手动为每个库重复此过程。
以上是 如何列出非本地二进制文件的库依赖关系? 的全部内容, 来源链接: utcz.com/qa/399596.html