Linux中ldd命令怎么用

2023-04-12 08:25:00 linux 命令 ldd

ldd命令是一个用于查看动态链接库的依赖关系的工具。它的作用是找出程序运行所需要的动态链接库,并且把这些库的路径打印出来。

ldd命令的格式为:

ldd [选项] 可执行文件

常用选项为:

-r:递归查找依赖关系,即如果可执行文件依赖于其他动态链接库,则会继续查找这些库的依赖关系。

-v:显示详细信息。

-d:只显示动态链接库的路径,不显示版本信息。

-l<库名>:只显示与指定库相关的信息。

例如,查看/bin/ls程序的依赖关系:

ldd /bin/ls

输出结果为:

linux-vdso.so.1 => (0x00007fff3b7ff000)

libselinux.so.1 => /lib/libselinux.so.1 (0x00007f3f95b32000)

libcap.so.2 => /lib/libcap.so.2 (0x00007f3f9593e000)

libacl.so.1 => /lib/libacl.so.1 (0x00007f3f9573a000)

libc.so.6 => /lib/libc.so.6 (0x00007f3f951b7000)

libdl.so.2 => /lib/libdl.so.2 (0x00007f3f94fb3000)

/lib64/ld-linux-x86-64.so.2 (0x00007f3f95d4e000)

从上面的输出结果可以看出,/bin/ls程序依赖于linux-vdso.so.1、libselinux.so.1、libcap.so.2、libacl.so.1、libc.so.6和libdl.so.2这些库。

另外,ldd命令还可以用于查看已安装的动态链接库的依赖关系。例如,查看libselinux.so.1库的依赖关系:

ldd /lib/libselinux.so.1

输出结果为:

linux-vdso.so.1 => (0x00007fffb97fe000)

libpcre.so.1 => /lib/libpcre.so.1 (0x00007f3f9d8b8000)

libdl.so.2 => /lib/libdl.so.2 (0x00007f3f9d6b4000)

libc.so.6 => /lib/libc.so.6 (0x00007f3f9caf1000)

/lib64/ld-linux-x86-64.so.2 (0x00007f3f9dbff000)

从上面的输出结果可以看出,libselinux.so.1库依赖于linux-vdso.so.1、libpcre.so.1、libdl.so.2和libc.so.6这些库。

相关文章