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 惯例)。