我遵循一个库的版本方案,版本号为三个部分,so版本为两个部分。示例-1.0.0和libexample.so.1.0。
当我在不破坏ABI的情况下进行更改时,版本字符串中的最后一个数字将被更新。第二个数字在我添加新符号时更新,主版本号用于不兼容的更改。
即使不破坏与其他程序的兼容性,也会在添加符号时更新so版本。这意味着程序需要重新编译,因为so版本已经改变,即使库仍然与旧版本兼容ABI。
添加新符号时,是否应避免更新so版本?
发布于 2016-01-18 21:59:37
这意味着程序需要重新编译,因为so版本已经改变,即使库仍然与旧版本兼容ABI。
这意味着你做得不对。只有在进行ABI不兼容的更改时才应该更改SONAME。习惯上使用example.1作为SONAME。文档。
如果您只关心Linux,您可能应该完全停止外部版本控制,而应该使用符号版本控制来提供单个libexample.so.1,它为新旧客户端二进制文件提供多个ABI不兼容的符号。
https://stackoverflow.com/questions/34858942
复制相似问题