MACHO_COMPATIBILITY_VERSION¶
在 3.17 版本中加入。
此目标针对 Mach-O 二进制文件的兼容性版本号。
对于 Mach-O 系统(例如 macOS、iOS)上的共享库,MACHO_COMPATIBILITY_VERSION
属性对应于兼容性版本,而 MACHO_CURRENT_VERSION
对应于当前版本。 这两者都嵌入在共享库二进制文件中,可以使用 otool -L <binary>
命令进行检查。
应该注意的是,MACHO_CURRENT_VERSION
和 MACHO_COMPATIBILITY_VERSION
属性不影响 CMake 为库生成的文件名或与版本相关的符号链接。VERSION
和 SOVERSION
目标属性仍然控制文件和符号链接的名称。install_name
也仍然由 SOVERSION
控制。
当未给出 MACHO_CURRENT_VERSION
和 MACHO_COMPATIBILITY_VERSION
时,分别使用 VERSION
和 SOVERSION
用于嵌入到二进制文件中的版本详情。MACHO_CURRENT_VERSION
和 MACHO_COMPATIBILITY_VERSION
属性仅在项目需要将文件和符号链接命名与嵌入在二进制文件中的版本详情解耦时才需要给出(例如,为了匹配 libtool 约定)。