ldd -v中的版本信息是什么意思?

时间:2016-04-02 02:44:52

标签: linux shared-libraries ldd readelf

Version information:
    /usr/lib/lapack/liblapack.so:
        libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
        libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6
        libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
        libgcc_s.so.1 (GCC_4.0.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1
        libgfortran.so.3 (GFORTRAN_1.0) => /usr/lib/x86_64-linux-gnu/libgfortran.so.3
        libgfortran.so.3 (GFORTRAN_1.4) => /usr/lib/x86_64-linux-gnu/libgfortran.so.3
        libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6

因此有3行libc.so.6,版本为GLIBC_2.xx

这是什么意思?这个liblapack.so需要什么版本的libc.so.6?

如何获得liblapack.so的版本?

1 个答案:

答案 0 :(得分:3)

  

这是什么意思?

这意味着liblapack.so需要libc.so.6版本为GLIBC_2.2.5GLIBC_2.4GLIBC_2.14的版本符号。您可以阅读版本化符号here

  

libc.so.6需要liblapack.so的哪个版本?

需要2.14或更新版本。一般来说,GLIBC从不删除符号,只添加新符号,因此即使在最新的GLIBC-2.24中,仍然会提供GLIBC_2.2.5版本的符号。

如果它确实删除了这样的“旧”版本符号,那么会破坏任何依赖于该符号的旧二进制文件(这就是为什么它没有完成)。

  

我如何获得liblapack.so的版本?

看起来liblapack.so本身并不使用任何版本符号。您可以查看您的包管理器,了解您拥有的liblapack.so版本。类似的东西:

dpkg -S /usr/lib/lapack/liblapack.so
liblapack-dev: /usr/lib/lapack/liblapack.so

dpkg -l liblapack-dev
...
ii  liblapack-dev  3.5.0-2ubuntu1  amd64 Library of linear algebra routines 3 - static version