Описание тега shared-library
Общие библиотеки распространяются как .so
файлы в /usr/lib/
, Эти файлы представляют собой скомпилированный код, который предназначен для совместного использования несколькими различными программами.
Библиотека экспортирует символы, которые являются скомпилированными версиями функций, классов и переменных. У библиотеки есть имя, называемое SONAME, которое включает номер версии. Эта версия SONAME не обязательно соответствует общедоступному номеру версии. Программа компилируется с заданной версией библиотеки SONAME. Если какой-либо из символов удаляется или изменяется, необходимо изменить номер версии, что приводит к перекомпиляции любых пакетов, использующих эту библиотеку, с новой версией. Номера версий обычно устанавливаются апстримом, и Ubuntu следует за ними в именах наших двоичных пакетов, называемых номерами ABI, но иногда апстрим не использует разумные номера версий, и упаковщики должны хранить отдельные номера версий.
Библиотеки обычно распространяются апстримом в виде отдельных выпусков. Иногда они распространяются как часть программы. В этом случае они могут быть включены в двоичный пакет вместе с программой (это называется связыванием), если вы не ожидаете, что другие программы будут использовать библиотеку, чаще их следует разбивать на отдельные двоичные пакеты.
Сами библиотеки помещаются в двоичный пакет с именем libfoo1
где foo
это имя библиотеки и 1
это версия от SONAME. Файлы разработки из пакета, такие как заголовочные файлы, необходимые для компиляции программ с библиотекой, помещаются в пакет, называемый libfoo-dev
,
- Посетите источник выдержки.