1、動(dòng)態(tài)庫的命名規(guī)則:libname.so.x.y.z
名字 | 含義 |
---|
lib | 這是共享庫的前綴 |
name | 共享庫名字 |
x | 主版本號 |
y | 次版本號 |
z | 發(fā)布版本號 |
2、每個(gè)版本號的含義
版本號 | 含義 |
---|
主版本號 | 表示庫的重大升級,不同主版本號的庫之間是不兼容的。依賴舊的主版本號的程序需要改動(dòng)相應(yīng)的部分,并且重新編譯,才能在新版本的共享庫中運(yùn)行。一般來說,就是新版本庫在舊版本庫的基礎(chǔ)上,改動(dòng)了函數(shù)接口或者數(shù)據(jù)類型,導(dǎo)致不兼容。 |
次版本號 | 表示庫的增量升級,即增加一些新的接口符號,且保持原來的符號不變。在主版本號相同的情況下,高的次版本號的庫兼容低的次版本號的庫。依賴低的次版本號庫編譯的程序,可以在新的次版本號的庫中運(yùn)行,因?yàn)樾麓伟姹咎枎熘斜A袅说痛伟姹咎枎熘兴械慕涌?#xff0c;并且沒有改變定義和含義。 |
發(fā)布版本號 | 表示庫的一些錯(cuò)誤修正、性能的提升等,并不添加任何新的接口,也不對接口進(jìn)行更改。相同主版本號、次版本號的共享庫,不同的發(fā)布版本之間完全兼容。 |
3、總結(jié)
(1)主版本號不同的庫之間不兼容;
(2)主版本號相同,高次版本號的庫兼容低次版本號的庫;
(3)主、次版本號相同的庫,不同發(fā)布版本之間完全兼容;