linux查看加载库命令
-
在Linux中,可以使用以下命令来查看已加载的库:
1. ldd命令:ldd命令用于打印出一个可执行文件所依赖的共享库,它会列出可执行文件或共享库所使用的动态连接库的名称、路径以及库的版本信息。
例如,要查看一个可执行文件的依赖库,可以使用以下命令:
ldd <可执行文件路径>例如,要查看本地/usr/bin/ls命令所依赖的库,可以使用以下命令:
ldd /usr/bin/lsldd命令的输出会显示出可执行文件所依赖的库的绝对路径。
2. readelf命令:readelf命令是一个用于分析ELF格式文件的命令,ELF格式是Unix-like系统常用的可执行文件和共享库格式。
可以使用以下命令来查看一个可执行文件所依赖的库:
readelf -a <可执行文件路径> | grep -i “Shared library”例如,要查看本地/usr/bin/ls命令所依赖的库,可以使用以下命令:
readelf -a /usr/bin/ls | grep -i “Shared library”readelf命令输出中的”Shared library”行列出了可执行文件所依赖的库的绝对路径。
通过以上两个命令,你可以方便地查看已加载的库和其路径信息,这对于诊断动态链接库问题、解决库依赖问题等非常有用。
2年前 -
在Linux中,可以使用下面几个命令来查看已经加载的库文件:
1. ldd命令:
ldd命令用于列出可执行文件或共享库文件所依赖的动态链接库。在命令行中输入”ldd 文件名”即可显示出该文件所依赖的动态链接库路径。2. nm命令:
nm命令用于列出二进制文件中的符号表。在命令行中输入”nm 文件名”即可列出该文件中的符号,包括函数名、变量名等。通过查看符号表可以判断出某个库是否已经被加载。3. readelf命令:
readelf命令用于展示一个二进制可执行文件或者共享库文件的信息。可以使用”readelf -d 文件名”命令来显示出该文件的动态链接信息。4. objdump命令:
objdump命令可以用来显示一个二进制文件的详细信息,包括符号表、重定位表等。可以使用”objdump -p 文件名”命令来显示出该文件的所有信息。5. /proc文件系统:
在Linux系统中,/proc文件系统是一个虚拟文件系统,提供了有关进程和系统信息的访问接口。可以使用cat命令来查看/proc/PID/maps文件,其中PID是进程的ID。该文件列出了进程加载的库的地址范围和库文件路径。当然,这些命令只是用来查看已加载的库文件的基本信息。如果需要更详细的信息,可以使用其他专门的工具,如strace、ldconfig等。
2年前 -
在Linux系统中,可以使用ldd命令来查看可执行文件或共享库依赖的动态链接库。ldd命令用于打印一个程序或共享库所依赖的动态链接库的完整路径名。
ldd命令的基本语法是:ldd [选项] 文件名
下面是一些常用的ldd的选项和使用示例:
1. 基本命令
ldd /path/to/executable # 查看可执行文件依赖的动态链接库
ldd /path/to/shared/library # 查看共享库依赖的动态链接库
2. 输出格式控制
-v, –verbose # 详细输出,显示库文件的版本号等信息
-r, –function-relocs # 显示函数重定位表的地址
-u, –unused # 仅显示未使用的库函数和符号
-d, –data-relocs # 显示数据段的重定位表的地址
3. 示例
ldd /bin/ls
libselinux.so.1 => /lib64/libselinux.so.1
libcap.so.2 => /lib64/libcap.so.2
libacl.so.1 => /lib64/libacl.so.1
libc.so.6 => /lib64/libc.so.6
libpcre.so.1 => /lib64/libpcre.so.1
libdl.so.2 => /lib64/libdl.so.2
/lib64/ld-linux-x86-64.so.2上面的示例显示了/bin/ls这个可执行文件依赖的动态链接库的路径。
4. 特殊符号
特殊符号的含义如下:
=> 表示链接的动态库
( 其中内容被括在括号内,表示库为可选的,并在运行时才链接
) 结束上面提到的可选库的定义
空格(或tab) 被用于与路径列表中的库分开5. 嵌套依赖
ldd命令默认只显示第一层的依赖关系,如果想查看嵌套层次的依赖关系,可以使用-R选项。
ldd -R /path/to/executable
2年前