linux命令行查找依赖的库
linux命令行查找依赖的库详细介绍
在 Linux 系统中,可借助不同命令来查找程序或库所依赖的库,下面为你介绍几个常用命令:
1.
ldd 命令
ldd 命令用于查看可执行文件或共享库所依赖的共享库。其基本语法为:
bash
ldd 可执行文件或共享库路径
例如,若要查看 /bin/ls 所依赖的库,可执行如下命令:
bash
ldd /bin/ls
执行后会输出类似如下结果:
plaintext
linux-vdso.so.1 (0x00007ffd971f7000)libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f318dc60000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f318da7e000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f318d9e0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f318d9da000)
/lib64/ld-linux-x86-64.so.2 (0x00007f318dce6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f318d9b7000)
2.
objdump 命令
objdump 命令可用于显示二进制文件的信息,借助 -p 选项能够查看文件的动态段信息,其中包含所依赖的库。其基本语法为:
bash
objdump 可执行文件或共享库路径 NEEDED
例如,查看 /bin/ls 所依赖的库:
bash
objdump /bin/ls NEEDED
输出结果示例如下:
plaintext
NEEDED libselinux.so.1NEEDED libc.so.6
NEEDED libpcre2-8.so.0
NEEDED libdl.so.2
NEEDED libpthread.so.0
3.
readelf 命令
readelf 命令可用于显示 ELF(Executable and Linkable Format)文件的信息,利用 -d 选项能够查看文件的动态段信息,其中包含所依赖的库。其基本语法为:
bash
readelf 可执行文件或共享库路径 NEEDED
例如,查看 /bin/ls 所依赖的库:
bash
readelf /bin/ls NEEDED
输出结果示例如下:
plaintext
0x0000000000000001 (NEEDED) Shared library: [libselinux.so.1]0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [libpcre2-8.so.0]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
9123456 0x0000000000000001 (NEEDED) Shared library: [libselinux.so.1] (NEEDED) Shared library: [libc.so.6] (NEEDED) Shared library: [libpcre2-8.so.0] (NEEDED) Shared library: [libdl.so.2] (NEEDED) Shared library: [libpthread.so.0]
综上所述,ldd 命令最为常用,能直观显示依赖库的具体路径;而 objdump 和 readelf 命令则更侧重于显示文件的详细信息。