溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

動(dòng)態(tài)鏈接庫.so和靜態(tài)鏈接庫.a的區(qū)別

發(fā)布時(shí)間:2020-06-02 21:12:52 來源:網(wǎng)絡(luò) 閱讀:1645 作者:SherryX 欄目:系統(tǒng)運(yùn)維
靜態(tài)鏈接庫:

  ?擴(kuò)展名:.a
  ?編譯行為:在編譯的時(shí)候,將函數(shù)庫直接整合到執(zhí)行程序中(所以利用靜態(tài)庫編譯生成的文檔會(huì)更大)
 ?獨(dú)立執(zhí)行的狀態(tài):編譯成功的可執(zhí)行文件可以獨(dú)立運(yùn)行,不需要再向外部要求讀取函式庫的內(nèi)容
 ?更新:如果函式庫更新,需要將整個(gè)項(xiàng)目程序重新編譯
 ?好處:方便程序移植

動(dòng)態(tài)鏈接庫:

  ?擴(kuò)展名:.so
  ?編譯行為:在編譯的時(shí)候,程序里面僅有指向動(dòng)態(tài)庫所在的指標(biāo),其內(nèi)容并沒有被整合到執(zhí)行文件中。所以,在程序運(yùn)行之初不需要加載所有代碼,只有在用到函式庫中的某個(gè)函數(shù)時(shí),程序才會(huì)去讀取動(dòng)態(tài)庫的內(nèi)容(所以利用動(dòng)態(tài)庫編譯生成的文檔會(huì)小些)
 ?獨(dú)立執(zhí)行的狀態(tài):編譯成功的可執(zhí)行文件不能獨(dú)立執(zhí)行,函式庫必須存在,而且?guī)焖诘哪夸浺膊荒芨淖?。(移?dòng)之后,必須重新編譯鏈接)
  ?更新:如果函式庫更新,不需要重新編譯,因?yàn)閳?zhí)行文件里僅有庫的位置(前提是函式庫名稱、位置都沒變)
  ?好處:
  1) 只保留接口,將動(dòng)態(tài)庫和程序代碼獨(dú)立,提高代碼的可復(fù)用性,降低程序耦合度。
  2) 節(jié)約內(nèi)存,減少頁面交換。
比如:計(jì)算機(jī)同時(shí)運(yùn)行多個(gè)程序,都應(yīng)用static.a,在內(nèi)存中就會(huì)存在多份拷貝。一旦程序數(shù)量過多,就有可能內(nèi)存不足。
動(dòng)態(tài)鏈接庫.so和靜態(tài)鏈接庫.a的區(qū)別
而在動(dòng)態(tài)庫在內(nèi)存中只存在一份拷貝,不會(huì)浪費(fèi)空間。
動(dòng)態(tài)鏈接庫.so和靜態(tài)鏈接庫.a的區(qū)別

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI