SOVERSION
Номер версии ABI целевой общей библиотеки.
Для общих библиотек VERSION и SOVERSION могут быть использованы для указания соответственно версии сборки и версии ABI. При построении или установке создаются соответствующие символические ссылки, если платформа поддерживает символические ссылки, а компоновщик поддерживает so-имена. Если указан только один из них, то пропущенный предполагается иметь тот же номер версии. SOVERSION игнорируется, если свойство NO_SONAME установлено.
Общая конвенция заключается в указании как VERSION , так и SOVERSION таким образом, чтобы SOVERSION соответствовал первому компоненту VERSION:
set_target_properties(mylib PROPERTIES VERSION 1.2.3 SOVERSION 1)
Идея заключается в том, что изменения в ABI, которые приводят к несовместимости, увеличивают как SOVERSION , так и номер основной версии VERSION.
Версии Windows
Для общих библиотек и исполняемых файлов в Windows атрибут VERSION анализируется для извлечения номера версии <major>.<minor>. Эти числа используются как версия изображения двоичного файла.
Версии Mach-O
Для общих библиотек и исполняемых файлов в системах Mach-O (например, macOS, iOS), свойство SOVERSION соответствует версии совместимости, а VERSION соответствует текущей версии (если не указаны особые для Mach-O переопределения, как обсуждалось ниже). См. свойство целевого объекта FRAMEWORK для примера.
Для общих библиотек свойства MACHO_COMPATIBILITY_VERSION и MACHO_CURRENT_VERSION могут использоваться для переопределения соответственно версии совместимости и текущей версии. Обратите внимание, что SOVERSION по-прежнему будет использоваться для формирования install_name , и как SOVERSION , так и VERSION также могут влиять на имена файла и символических ссылок.
Версии двоичных файлов Mach-O можно проверить с помощью команды otool -L <binary>.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html