ldd 打印可执行文件依赖哪些共享库

来源:互联网 发布:java测试分类 编辑:程序博客网 时间:2024/05/06 14:25
ldd test.exe
        linux-gate.so.1 =>  (0x40000000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00197000)
        libm.so.6 => /lib/libm.so.6 (0x00bb3000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00189000)
        libc.so.6 => /home/xguan005/autorun/lib/libc.so.6 (0x40018000)

        /lib/ld-linux.so.2 (0x00a4a000)


ldd本身不是可执行程序,只是一个shell脚本。通过set -x得到如下log信息。

+ eval LD_TRACE_LOADED_OBJECTS=1 LD_WARN= LD_BIND_NOW= 'LD_LIBRARY_VERSION=$verify_out' LD_VERBOSE= '"$@"'
++ LD_TRACE_LOADED_OBJECTS=1
++ LD_WARN=
++ LD_BIND_NOW=
++ LD_LIBRARY_VERSION=6
++ LD_VERBOSE=
++ ./mytest/c++/test.exe
+ cat
        linux-gate.so.1 =>  (0x40000000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00197000)
        libm.so.6 => /lib/libm.so.6 (0x00bb3000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00189000)
        libc.so.6 => /home/xguan005/autorun/lib/libc.so.6 (0x40018000)
        /lib/ld-linux.so.2 (0x00a4a000)
+ rc=0


如果此程序依赖于64位的动态库,而你在32位系统上做此操作,查询不到,则会提示:

ldd xxx.exe
        not a dynamic executable


一个程序是否可以执行,请确定其是否依赖动态库,而此系统不包含对应的动态库。

执行操作,则提示:

xxx.exe: cannot execute binary file


原创粉丝点击