Soname - Soname
Эта статья нужны дополнительные цитаты для проверка.Июль 2014 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В 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
Смотрите также
Рекомендации
- ^ Стерк, Торстен (25 марта 2011 г.). "Команды и файлы, относящиеся к библиотеке: soname". LinuxQuestions.org. Получено 2018-02-07.
- ^ Бансал, Ашиш (01.04.2001). «Общие объекты для объекта дезориентированы: как писать динамически загружаемые библиотеки». IBM DeveloperWorks. Получено 2018-02-07.