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

前端之家收集整理的这篇文章主要介绍了ldd 打印可执行文件依赖哪些共享库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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

猜你在找的设计模式相关文章