程序源代碼編譯后,它是由編譯器編譯并通過鏈接器鏈接到這些庫中的
動態(tài)鏈接庫和靜態(tài)鏈接庫的區(qū)別是鏈接器鏈接時靜態(tài)鏈接庫會直接編譯到程序中
但是動態(tài)鏈接庫不會被編譯,這些鏈接庫稱為依賴關(guān)系(動態(tài)庫和靜態(tài)庫)
程序的運行需要這些依賴關(guān)系。程序靜態(tài)鏈接后,程序本身已包含此依賴項
但動態(tài)鏈接的程序本身不包含此依賴項。這些依賴項需要執(zhí)行器將它們安裝到操作系統(tǒng)中(動態(tài)庫和運行時庫)
這些庫將在程序運行時動態(tài)加載
Linux動態(tài)庫的一般后綴為。所以
靜態(tài)庫的一般后綴是。A
因為靜態(tài)鏈接會直接將庫編譯到程序中,靜態(tài)編譯的程序比動態(tài)鏈接的程序大
這是因為靜態(tài)鏈接會將鏈接庫編譯到程序中,所以占用的空間會更大
因此,如果有靜態(tài)鏈接庫,靜態(tài)庫不易維護(hù)和更新實現(xiàn)中的bug,整個程序需要更新,因為靜態(tài)庫被編譯到程序中
而動態(tài)庫沒有這種情況,因為動態(tài)庫是在程序運行時動態(tài)加載的,所以我們只需要更新動態(tài)庫,而不需要更新所有依賴該庫的程序(軟件)
]另一方面,許多程序開發(fā)都會使用相同的方法鏈接庫,也就是說,許多程序(軟件)將具有相同的依賴關(guān)系
如果所有這些依賴關(guān)系都是靜態(tài)編譯的,它會造成存儲資源的過度消耗和資源的浪費
通過使用動態(tài)庫,這些程序(軟件)可以共享一個鏈接庫,而每個程序都沒有鏈接庫,這大大減少了存儲資源的消耗空間
動態(tài)庫和靜態(tài)庫都是一組函數(shù),它們打包在一起供應(yīng)用程序調(diào)用。區(qū)別在于靜態(tài)庫的名稱一般是XXX。A、它在編譯時與應(yīng)用程序鏈接。這樣的應(yīng)用程序占用了更多的空間。動態(tài)庫名稱通常是某某對于動態(tài)庫,可以在編譯時鏈接它們,或者使用dlopen()/dlsym()/dlclose()函數(shù)在運行時調(diào)用它們。后者占用空間小,可以實現(xiàn)進(jìn)程間動態(tài)庫的共享,只需在內(nèi)存中保留一個副本,降低了內(nèi)存開銷。
linux下的動態(tài)鏈接庫和靜態(tài)鏈接庫到底是個什么鬼?動態(tài)鏈接庫和靜態(tài)鏈接庫通常編譯為集成一系列接口(函數(shù))。程序源代碼編譯后,由編譯器編譯并通過鏈接器與這些庫鏈接。動態(tài)鏈接庫和靜態(tài)鏈接庫的區(qū)別在于,當(dāng)鏈接器鏈接時,靜態(tài)鏈接庫會直接編譯到程序中,而動態(tài)鏈接庫不會有的鏈接庫稱為依賴關(guān)系(動態(tài)鏈接庫和靜態(tài)鏈接庫)。程序的運行需要這些依賴關(guān)系。程序靜態(tài)鏈接后,程序本身包含依賴項,而動態(tài)鏈接的程序本身不包含依賴項。這些依賴關(guān)系需要執(zhí)行者自己將它們安裝到操作系統(tǒng)(動態(tài)庫和運行庫)中。當(dāng)程序運行時,Linux上的動態(tài)庫將被動態(tài)加載,一般后綴為。所以,靜態(tài)庫的一般后綴是。A.由于靜態(tài)鏈接將庫直接編譯到程序中,因此靜態(tài)編譯的程序比動態(tài)鏈接大。這是因為靜態(tài)鏈接會將鏈接庫編譯成程序,所以占用空間會很大。因此,靜態(tài)庫不易維護(hù)和更新,如果鏈接庫中有實現(xiàn)Bu,則靜態(tài)庫被編譯到程序中,而動態(tài)庫則不是。因為動態(tài)庫是在程序運行時動態(tài)加載的,所以我們只需要更新動態(tài)庫,而不需要更新依賴于動態(tài)庫的所有程序(軟件)。另一方面,許多程序開發(fā)將使用相同的鏈接庫,即許多程序(軟件)將具有相同的依賴關(guān)系。如果所有這些依賴項都是靜態(tài)編譯的,則會導(dǎo)致過多的存儲資源和資源浪費。通過使用動態(tài)庫,這些程序(軟件)可以共享一個鏈接庫,而不是每個程序共享一個鏈接庫,這大大減少了存儲資源
文章題目:linux動態(tài)庫路徑指定linux動態(tài)庫和靜態(tài)庫的區(qū)別?-創(chuàng)新互聯(lián)
文章鏈接:http://m.2m8n56k.cn/article30/dhpsso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、手機網(wǎng)站建設(shè)、網(wǎng)站改版、服務(wù)器托管、云服務(wù)器、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容