MACHO_COMPATIBILITY_VERSION

在版本 3.17 中新增。

此目標用於 Mach-O 二進制檔的相容性版本號碼。

對於 Mach-O 系統(例如 macOS、iOS)上的共享函式庫,MACHO_COMPATIBILITY_VERSION 屬性對應於相容性版本,而 MACHO_CURRENT_VERSION 則對應於目前版本。這些都嵌入在共享函式庫二進制檔中,並且可以使用 otool -L <binary> 命令來檢查。

應注意,MACHO_CURRENT_VERSIONMACHO_COMPATIBILITY_VERSION 屬性不會影響 CMake 為函式庫產生的檔案名稱或與版本相關的符號連結。VERSIONSOVERSION 目標屬性仍然控制檔案和符號連結名稱。install_name 也仍然由 SOVERSION 控制。

當未給定 MACHO_CURRENT_VERSIONMACHO_COMPATIBILITY_VERSION 時,VERSIONSOVERSION 分別用於嵌入在二進制檔中的版本詳細資訊。MACHO_CURRENT_VERSIONMACHO_COMPATIBILITY_VERSION 屬性僅在專案需要將檔案和符號連結命名與嵌入在二進制檔中的版本詳細資訊分開時才需要給定(例如,為了符合 libtool 慣例)。