Soname - Soname

В Unix и Unix-подобный операционные системы, soname это поле данных в общий объект файл. Soname - это нить, которое используется как «логическое имя», описывающее функциональные возможности объекта. Обычно это имя совпадает с имя файла библиотеки или ее префикса, например libc.so.6.

Имя

Soname часто используется для предоставления информации об обратной совместимости версии.[1] Например, если версии с 1.0 по 1.9 разделяемой библиотеки libx предоставлять идентичные интерфейсы, все они будут иметь одно и то же имя, например libx.so.1. Если система включает только версию 1.3 этого общего объекта с именем файла libx.so.1.3, поле soname общего объекта сообщает системе, что его можно использовать для заполнения зависимости для двоичного файла, который изначально был скомпилирован с использованием версии 1.2.[2] Обратите внимание, что libc.so частный случай и имеет сложную историю, см. Библиотека GNU C.

Если двоичный интерфейс приложения (ABI) библиотеки изменяется в обратно несовместимый Таким образом, soname будет увеличиваться, например из libX.so.5 к libX.so.6.

В Компоновщик GNU использует -часимя или же -soname =имя для указания поля имени библиотеки. Внутри компоновщик создаст DT_SONAME поле и заполните его имя.

Учитывая любой общий объектный файл, можно использовать следующую команду для получения информации из файла библиотеки, используя objdump:

$ objdump -p libx.so.1.3 | grep SONAME SONAME libx.so.1

Смотрите также

Рекомендации

  1. ^ Стерк, Торстен (25 марта 2011 г.). "Команды и файлы, относящиеся к библиотеке: soname". LinuxQuestions.org. Получено 2018-02-07.
  2. ^ Бансал, Ашиш (01.04.2001). «Общие объекты для объекта дезориентированы: как писать динамически загружаемые библиотеки». IBM DeveloperWorks. Получено 2018-02-07.