查看所有动态库命令linux

fiy 其他 161

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在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年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在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.6

    3. 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.5

    5. objcopy命令
    objcopy命令可以复制一个目标文件,并可以选择复制特定的节(段)。

    例如,要复制一个目标文件的节(段)到一个新的文件,可以使用以下命令:
    objcopy –only-keep-debug <目标文件> <新文件>

    例如:
    objcopy –only-keep-debug /usr/bin/python3 python3.debug

    然后,可以使用readelf命令或者objdump命令查看新文件的动态库信息。

    以上是在Linux系统中查看所有动态库的常用命令。每个命令都有不同的特点和用法,根据实际需求可以选择适合的命令来查看动态库。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在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年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部