Сонаме
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2014 г. ) |
В Unix и Unix-подобных операционных системах soname — это поле данных в общем объектном файле. [1] Soname — это строка , которая используется как «логическое имя», описывающее функциональность объекта. Обычно это имя равно имени файла библиотеки или его префиксу, например libc.so.6
.
Имя [ править ]
Имя soname часто используется для предоставления информации об обратной совместимости версий. [2] Например, если версии 1.0–1.9 общей библиотеки «libx» предоставляют идентичные интерфейсы , все они будут иметь одно и то же имя soname, например «libx.so.1». Если система включает только версию 1.3 этого общего объекта с именем файла «libx.so.1.3», поле soname общего объекта сообщает системе, что его можно использовать для заполнения зависимости для двоичного файла, который изначально был скомпилирован с использованием версии 1.2. [3]
Если двоичный интерфейс приложения библиотеки изменяется обратно несовместимым образом, soname будет «сдвинуто» или увеличено, например, с «libx.so.1» на «libx.so.2».
Компоновщик GNU использует -hname
или -soname=name
параметры командной строки для указания поля имени библиотеки. Внутри компоновщик создаст поле DT_SONAME и заполнит его именем .
Учитывая любой общий объектный файл, можно использовать следующую команду, чтобы получить информацию из файла библиотеки с помощью objdump :
$ objdump -p libx.so.1.3 | grep SONAME
SONAME libx.so.1
См. также [ править ]
Ссылки [ править ]
- ^ Уиллер, Дэвид (11 апреля 2003 г.). «Библиотека программ HOWTO» . tldp.org . Проверено 4 января 2021 г.
- ^ Стаерк, Торстен (25 марта 2011 г.). «Команды и файлы, связанные с библиотекой: soname» . LinuxQuestions.org . Проверено 7 февраля 2018 г.
- ^ Бансал, Ашиш (1 апреля 2001 г.). «Общие объекты для дезориентированного объекта: Как писать динамически загружаемые библиотеки» . IBM DeveloperWorks . Проверено 7 февраля 2018 г.