VERSION

共用函式庫目標的版本號碼。

對於共用函式庫,可以使用 VERSIONSOVERSION 分別指定建置版本和 ABI 版本。當建置或安裝時,如果平台支援符號連結且連結器支援 so-names,則會建立適當的符號連結。如果僅指定其中一個,則會假定遺漏的版本號碼與指定的相同。對於可執行檔,可以使用 VERSION 指定建置版本。當建置或安裝時,如果平台支援符號連結,則會建立適當的符號連結。

一個常見的慣例是同時指定 VERSIONSOVERSION,使 SOVERSIONVERSION 的第一個組件相符。

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_VERSIONMACHO_CURRENT_VERSION 屬性可用於分別覆寫相容性版本當前版本。 請注意,SOVERSION 仍將用於形成 install_name,並且 SOVERSIONVERSION 也可能影響檔案和符號連結名稱。

Mach-O 二進制檔案的版本可以使用 otool -L <binary> 命令檢查。