了解ldd详细:多个版本是什么?

问题描述 投票:1回答:1

当我以详细模式运行ldd时,我得到如下输出。列出多个版本时意味着什么?这是否意味着任何这些版本可行,或者它需要所有这些版本?

    ldd -v lbrycrd-linux\ \(4\)/lbrycrdd 
        linux-vdso.so.1 (0x00007ffd167cf000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007eff77399000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007eff77191000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007eff76df3000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007eff76bdb000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007eff767ea000)
        /lib64/ld-linux-x86-64.so.2 (0x00007eff79f90000)

        Version information:
        lbrycrd-linux (4)/lbrycrdd:
            ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
            librt.so.1 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/librt.so.1
            libm.so.6 (GLIBC_2.27) => /lib/x86_64-linux-gnu/libm.so.6
            libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6
            libgcc_s.so.1 (GCC_3.3) => /lib/x86_64-linux-gnu/libgcc_s.so.1
            libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1
            libgcc_s.so.1 (GCC_4.2.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1
            libpthread.so.0 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libpthread.so.0
            libpthread.so.0 (GLIBC_2.3.3) => /lib/x86_64-linux-gnu/libpthread.so.0
            libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0
            ...
dynamic-linking ldd
1个回答
0
投票

列出多个版本时意味着什么?

这意味着您的二进制文件引用了这些版本的符号。另见thisthis答案。

这是否意味着任何这些版本可行,或者它需要所有这些版本?

后者。或者更确切地说,它需要一个提供所有这些符号的库,这通常意味着GLIBC_2.27或更高版本用于GLIBC,GCC_4.2.0或更高版本用于libgcc

© www.soinside.com 2019 - 2024. All rights reserved.