MACHO_CURRENT_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 规范相符)。