使用 CMake 管理库版本号(VERSION 和 SOVERSION)
在 CMake 构建系统中,Linux 共享库支持两个非常关键的目标(Target)属性:VERSION
和 SOVERSION
,我们可以方便地为共享库设置这些版本信息。
set_target_properties(mylib PROPERTIES VERSION 1.2.3 SOVERSION 1)
官方说明:
https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html
📌 背景知识
在 Linux 系统中,共享库通常以如下形式命名:
lib<name>.so.<major>.<minor>.<patch>
例如:
libhello.so.1.2.3
其中:
- Major version (主版本):当接口发生不兼容的更改时递增。
- Minor version (次版本)