0

我正在学习管理我的共享库,谷歌揭示了有关两个主要和次要版本数字的大量信息,但我正在查看的许多库都有 3 位数字,例如 libsqlite3.so.0.8.6 ,第三位数字是多少?

提到了一个“时期”:

... soname 具有前缀lib'', the name of the library, the phrase.so'',后跟一个句点和一个版本号,每当界面更改时都会增加... http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries .html

但我找不到这个周期数字是什么以及它的影响的解释?

编辑:

libsqlite3.so.0.8.6
              | | |
_What's this?_| | |
_Major__________| |
_Minor____________|
4

1 回答 1

2

这是来自另一个论坛(快速谷歌搜索)的一个主题,其中有一些关于命名的对话:

从线程:

当有两个数字时,有一个主要版本和一个次要版本。libncursesw.so.5.6 有主要版本 5 和次要版本 6;理论上,相同主要版本的任何次要版本都无需重新编译即可兼容,因此如果您升级到 5.7 进行错误修复,链接到 libncursesw.so.5 的程序不会错过任何一个节拍。如果您有一个需要版本 4 的古老程序,您可以安全地在 5.x 库旁边安装一个 4.x 库,除了那个程序之外什么都不会使用它。

基本上,命名约定允许链接到库的程序具有三个级别的兼容性。程序可以选择链接库名称本身、特定的主编号或特定的major.minor 编号。这实际上取决于应用程序开发人员来确定什么是最有意义的。

您会注意到,通用和主要数字形式通常链接到最近的 major.minor 形式。库可能包含库需要的附加版本号(例如/lib/ld-linux.so)。版本号仍然从左到右进行,增加特异性。

于 2012-12-06T22:12:25.150 回答