PC Linux上查看库依赖依赖关系
直接使用ldd 命令即可,可以查看可执行程序,比如:
root@forlinx:~# ldd /bin/mv
linux-gate.so.1 => (0x00c7b000)
libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0x00136000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0x00ada000)
libacl.so.1 => /lib/i386-linux-gnu/libacl.so.1 (0x00fac000)
libattr.so.1 => /lib/i386-linux-gnu/libattr.so.1 (0x005ae000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00151000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x006b1000)
/lib/ld-linux.so.2 (0x00578000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x00302000)
root@forlinx:~#
也可以查看动态库 比如:
root@forlinx:~# ldd /lib/libcrypto.so.0.9.8
linux-gate.so.1 => (0x00a88000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x00d04000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0x001b9000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x001ce000)
/lib/ld-linux.so.2 (0x00886000)
查看嵌入式平台上,交叉编译好的可执行程序,或者库文件的相关依赖
在PC Linux上执行命令:arm-linux-readelf -a "your binary" | grep "Shared"
例如查看二进制可执行文件:
root@forlinx:~# arm-linux-readelf -a "/mnt/Linux/FileSystem-Yaffs2/bin/ls" | grep "Shared"
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libc.so.6]
查看动态库文件:
root@forlinx:~# arm-linux-readelf -a "/mnt/Linux/FileSystem-Yaffs2/lib/libresolv.so.2" | grep "Shared"
Type: DYN (Shared object file)
0x00000001 (NEEDED) Shared library: [libc.so.6]
root@forlinx:~#