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 约定)才需要提供。