我什么时候应该更新这个版本?

时间:2016-01-18 15:58:06

标签: shared-libraries

我遵循版本号为三部分的库的版本方案以及两部分的版本。 example-1.0.0和libexample.so.1.0。

当我在不破坏ABI的情况下进行更改时,版本字符串中的最后一个数字会更新。添加新符号时会更新第二个数字,主要版本号用于不兼容的更改。

即使不破坏与其他程序的兼容性,添加符号时也会更新版本。这意味着程序需要重新编译,因为即使库仍然与旧版本ABI兼容,所以版本也已更改。

添加新符号时,是否应该避免更新版本?

1 个答案:

答案 0 :(得分:2)

  

这意味着需要重新编译程序,因为即使库仍然与旧版本ABI兼容,所以版本也已更改。

这意味着你没有正确地做到这一点。在进行ABI不兼容的更改时,您应更改SONAME。习惯使用example.1作为SONAMEDocumentation

P.S。如果您只关心Linux,则可能应该完全停止外部版本控制,而是使用符号版本控制来提供单个libexample.so.1,为新旧客户端二进制文件提供多个ABI不兼容的符号。