MACHO_COMPATIBILITY_VERSION

在版本 3.17 中新增。

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

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

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

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