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

4
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个回答

3

这是什么意思?

这意味着 liblapack.so 需要来自 libc.so.6 的带有版本号的符号,版本为 GLIBC_2.2.5GLIBC_2.4GLIBC_2.14。您可以在 这里 了解有关版本化符号的信息。

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

它需要 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接