Ubuntu 的依赖查找器

Ubuntu 的依赖查找器

有没有类似Windows的工具DependencyWalker适用于 Ubuntu?我想查看我的可执行文件所依赖的所有共享库。

答案1

在终端中执行:

ldd /path/to/your_executable

例子:

~$ ldd /bin/ls
        linux-vdso.so.1 =>  (0x00007fff78fea000)
        libselinux.so.1 => /lib/libselinux.so.1 (0x00007f1940858000)
        librt.so.1 => /lib/librt.so.1 (0x00007f1940650000)
        libacl.so.1 => /lib/libacl.so.1 (0x00007f1940447000)
        libc.so.6 => /lib/libc.so.6 (0x00007f19400c4000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f193fec0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1940a99000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f193fca2000)
        libattr.so.1 => /lib/libattr.so.1 (0x00007f193fa9d000)

答案2

ldd仅显示给定的可执行文件所依赖的共享库,但是 - 与 Dependency Walker 不同 - 它确实不是显示从每个共享库导入的符号(例如函数)。如果你想知道哪个符号可执行文件(或共享库)导入,你可以使用nm有选项-D --undefined-only. 这仍然不是告诉您从哪个特定库导入了哪些特定函数。不过,有一个脚本可以做到这一点:

https://github.com/dEajL3kA/dependencies.py

注意:您可能还想使用选项--recursive来解决间接体面!这将为您提供依赖关系的“层次结构”视图,类似于 Dependency Walker 所做的。


lddtree,可从pax-实用程序包,提供输出的“树”视图ldd

相关内容