依赖关系分析工具适用于Ubuntu。

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

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)

ldd和depends之间有一个很大的区别-ldd不显示依赖关系的层次结构。我构建的共享库链接到2个不同版本的libicu,但我无法确定我的库所依赖的SO中哪个是依赖于“错误”版本的。是否有什么技巧可以获得这种层次视图呢? - kritzel_sw