Что означает информация о версии в ldd -v?

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.

Что это обозначает? Какая версия libc.so.6 для этого liblapack.so требуется?

Как мне получить версию liblapack.so?


person colinfang    schedule 02.04.2016    source источник


Ответы (1)


Что это обозначает?

Это означает, что liblapack.so требует версионных символов из libc.so.6 с версиями GLIBC_2.2.5, GLIBC_2.4 и GLIBC_2.14. О версиях символов можно прочитать здесь.

Какая версия libc.so.6 требуется для этого liblapack.so?

Требуется 2.14 или новее. В общем, GLIBC никогда не удаляет символы, а только добавляет новые, и поэтому по-прежнему будет предоставлять символы с версией GLIBC_2.2.5 даже в последней версии GLIBC-2.24.

Если бы он когда-либо удалил такой «старый» версионный символ, это сломало бы все старые двоичные файлы, которые зависели от этого символа (вот почему это не сделано).

Как я могу получить версию 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
person Employed Russian    schedule 03.04.2016