日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 版本_Linux动态库版本号作用机制

發(fā)布時間:2023/12/10 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 版本_Linux动态库版本号作用机制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

熟悉linux的都知道,linux的動態(tài)庫如果有版本號的話,一般是libsample.so.x.y.z這樣的名字。

x.y.z對應(yīng)的就是major.minor.release(即主.次.發(fā)布)版本號

  • Major:大版本更新,前后都不兼容(比如移除api,又新增api)

  • Minor:小版本更新,一般來說是向前兼容的(即1.2.1是可以用在1.1.0的環(huán)境的)

  • Release:就是解決內(nèi)部的問題,api沒任何變化。

  • 另外除開libsample.so.x.y.z這個文件,一般還會有兩個文件

    libsample.so?->?libsample.so.x.y.z

    libsample.so.x?->?libsample.so.x.y.z

    libsample.so.x.y.z

    其實(shí)前兩個文件都是軟連接到第三個文件的。

    • 首先來看編譯連接時

    簡單來說:“是通過一個最容易的名字libsample.so,找到真實(shí)的文件libsample.so.x.y.z,然后取得它的運(yùn)行時名字libsampe.so.x”

    直接看圖

    編譯連接過程

    • 再來看運(yùn)行加載時

    簡單來說“是通過運(yùn)行時名字libsampe.so.x,找到鏈接文件ibsampe.so.x,從而定位真實(shí)文件libsample.so.x.y.z”

    運(yùn)行加載過程

    • 兼容,怎么做到的?

    假設(shè)運(yùn)行系統(tǒng)目前已經(jīng)有了下面三個文件:

    libsample.so????-->libsample.so.1.1.1

    libsample.so.1??-->libsample.so.1.1.1

    libsample.so.1.1.1

    另外一個執(zhí)行文件foo依賴ibsample.so.1?。

    兼容升級:

    當(dāng)升級libsample.so.1.1.1為libsample.so.1.2.0時,只需要將連接重新指定

    libsample.so.1??-->libsample.so.1.1.1???//修改為

    libsample.so.1??-->libsample.so.1.2.0?

    不用重新編譯foo

    不兼容升級:

    當(dāng)升級libsample.so.1.1.1為libsample.so.2.0.0時,可以保持原來的狀況不變

    libsample.so.1??-->libsample.so.1.1.1

    //添加新的文件

    libsample.so.2??-->libsample.so.2.0.0

    這樣保證,

    • 舊的foo 依賴libsample.so.1.1.1可以繼續(xù)運(yùn)行;

    • 新的foo2依賴libsample.so.2.0.0也可以繼續(xù)運(yùn)行。

    還有疑問的話,就在實(shí)際環(huán)境驗(yàn)證吧。

    總結(jié)

    以上是生活随笔為你收集整理的linux 版本_Linux动态库版本号作用机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。