查看所有动态库命令linux
-
在Linux系统中,我们可以使用以下命令查看所有动态库:
1. ls命令:ls命令可以用来列出指定目录下的文件和文件夹,通过指定动态库文件所在的目录,可以查看该目录下的所有动态库文件。使用方法如下:
“`
ls /usr/lib #查看/usr/lib目录下的动态库文件
“`2. find命令:find命令可以用来查找指定目录及其子目录下的文件,通过指定文件类型为动态库文件,可以查找所有的动态库文件。使用方法如下:
“`
find /usr/lib -name “*.so” #查找/usr/lib目录及其子目录下的所有动态库文件
“`3. ldd命令:ldd命令可以显示程序所依赖的动态库。通过指定要查看的可执行文件,可以查看该文件所依赖的动态库。使用方法如下:
“`
ldd /usr/bin/program #查看/usr/bin/program可执行文件所依赖的动态库
“`4. objdump命令:objdump命令可以用来显示二进制文件的信息,通过指定动态库文件,可以查看该文件的符号表和依赖关系。使用方法如下:
“`
objdump -p /usr/lib/libexample.so #查看/usr/lib/libexample.so动态库的符号表和依赖关系
“`通过以上命令,你可以查看Linux系统中所有的动态库文件、某个目录下的动态库文件,以及某个可执行文件所依赖的动态库。希望对你有帮助!
2年前 -
在Linux系统中,可以使用以下命令来查看所有动态库:
1. ldd命令
ldd命令可以列出一个可执行文件或者动态链接库所依赖的动态库。例如,要查看一个可执行文件或者动态链接库的动态库依赖关系,可以使用以下命令:
ldd <文件路径>例如:
ldd /usr/bin/python3输出示例:
linux-vdso.so.1 (0x00007ffc5d13d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1af3f3f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1af3b4e000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1af3b48000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f1af3b42000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1af39f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1af7c5a000)2. objdump命令
objdump命令可以显示一个目标文件或者可执行文件的详细信息,包括动态库的信息。例如,要查看一个可执行文件或者动态链接库的动态库信息,可以使用以下命令:
objdump -p <文件路径> | grep NEEDED例如:
objdump -p /usr/bin/python3 | grep NEEDED输出示例:
NEEDED libpthread.so.0
NEEDED libc.so.6
NEEDED libdl.so.2
NEEDED libutil.so.1
NEEDED libm.so.63. readelf命令
readelf命令用于显示一个目标文件的详细信息,包括动态库的信息。例如,要查看一个可执行文件或者动态链接库的动态库信息,可以使用以下命令:
readelf -d <文件路径> | grep NEEDED例如:
readelf -d /usr/bin/python3 | grep NEEDED输出示例:
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libutil.so.1]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]4. nm命令
nm命令用于显示一个目标文件或者可执行文件的符号表,包括动态库中的符号。例如,要查看一个可执行文件或者动态链接库的动态库中的符号,可以使用以下命令:
nm -D –defined-only <文件路径>例如:
nm -D –defined-only /usr/bin/python3输出示例:
U __cxa_finalize@@GLIBC_2.2.5
U __libc_start_main@@GLIBC_2.2.5
U __gmon_start__
U __register_atfork@@GLIBC_2.2.5
U __gmpz_init@@GMP_6.1
U __fxstat@@GLIBC_2.2.5
U Py_SetProgramName
U __errno_location@@GLIBC_2.2.5
U __udivdi3@@GCC_3.0
U __mpz_set_si@@GMP_2.1
U _ITM_deregisterTMCloneTable
U __xstat@@GLIBC_2.2.5
U __gmpz_abs@@GMP_3.0
U __stack_chk_fail@@GLIBC_2.4
U _IO_puts@@GLIBC_2.2.5
U __gmpz_tdiv_q@@GMP_2.0
U __gmpz_get_si@@GMP_3.0
U Py_GetPath
U __gmpz_set_str@@GMP_2.0
U __gmpz_sub_ui@@GMP_2.0
U dlclose@@GLIBC_2.2.55. objcopy命令
objcopy命令可以复制一个目标文件,并可以选择复制特定的节(段)。例如,要复制一个目标文件的节(段)到一个新的文件,可以使用以下命令:
objcopy –only-keep-debug <目标文件> <新文件>例如:
objcopy –only-keep-debug /usr/bin/python3 python3.debug然后,可以使用readelf命令或者objdump命令查看新文件的动态库信息。
以上是在Linux系统中查看所有动态库的常用命令。每个命令都有不同的特点和用法,根据实际需求可以选择适合的命令来查看动态库。
2年前 -
在Linux系统中,可以使用以下几种方法来查看动态库:
1. 使用ldconfig命令查看已加载的动态库
ldconfig命令是一个配置动态链接器运行时绑定器的工具,用于管理系统的共享库缓存。可以使用以下命令来查看系统中已加载的动态库:
“`
ldconfig -p
“`该命令将列出系统中所有已加载的动态库,包括库的全路径和版本信息。
2. 使用ldd命令查看程序所依赖的动态库
ldd命令用于打印程序或共享库所依赖的共享库列表。在命令行中输入以下命令:
“`
ldd“` 例如,要查看ls命令所依赖的动态库,可以输入以下命令:
“`
ldd /bin/ls
“`ldd命令会输出程序所依赖的动态库的全路径,以及库的版本信息。
3. 使用objdump命令查看动态库信息
objdump命令是GNU Binutils工具集中的一个工具,用于显示目标文件或共享库的信息。可以使用以下命令来查看动态库的信息:
“`
objdump -p“` 例如,要查看libstdc++.so.6库的信息,可以输入以下命令:
“`
objdump -p /usr/lib/libstdc++.so.6
“`objdump命令会输出动态库的一些基本信息,包括库的路径、版本、依赖关系等。
4. 在/proc文件系统中查看动态库信息
在Linux系统中,/proc文件系统提供了关于系统内核和进程的详细信息。可以使用以下命令来查看进程所加载的动态库:
“`
cat /proc//maps | grep ‘.so’
“`将”
“替换为对应进程的PID。该命令会列出进程所加载的动态库的内存映射信息。 以上就是在Linux系统中查看动态库的几种常用方法。通过这些方法,可以方便地了解系统中已加载的动态库和程序所依赖的动态库。
2年前