程序源代碼編譯后,它是由編譯器編譯并通過鏈接器鏈接到這些庫中的
創(chuàng)新互聯(lián)公司是一家專業(yè)提供甘州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、H5建站、小程序制作等業(yè)務(wù)。10年已為甘州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。動態(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)庫,這些程序(軟件)可以共享一個鏈接庫,而每個程序都沒有鏈接庫,這大大減少了存儲資源的消耗空間
Linux中有兩種函數(shù)庫:靜態(tài)庫共享庫(動態(tài)庫)。靜態(tài)庫的代碼在編譯時與開發(fā)人員的應(yīng)用程序相連接,動態(tài)庫的實際程序在運行時加載。由于動態(tài)庫不包含庫函數(shù)的實現(xiàn)代碼,而只包含對函數(shù)庫的引用,程序代碼規(guī)模相對較小,并且動態(tài)庫的擴(kuò)展由它組成。所以。和版本號,靜態(tài)鏈接庫包括。你可能測試不一樣,實現(xiàn)代碼,可能不一樣。動態(tài)庫通常做得很好,而且通常比靜態(tài)庫好。當(dāng)然,這些功能已經(jīng)實現(xiàn)了。我想我不太熟悉的時候最好用動態(tài)庫。因為,如果您的靜態(tài)庫在內(nèi)存中被多次調(diào)用,那么您將調(diào)用多個靜態(tài)庫實現(xiàn)代碼,這些代碼將被重復(fù)并浪費內(nèi)存。在程序執(zhí)行過程中調(diào)用動態(tài)庫
在Linux系統(tǒng)中,靜態(tài)庫是。一個文件。文件只需要添加的完整文件路徑。要編譯和鏈接的文件。一個文件,例如:GCC-Ohello。C/usr/lib/libm。Linux系統(tǒng)的動態(tài)庫是。所以在系統(tǒng)中輸入文件。要編譯和鏈接動態(tài)庫,需要使用-L參數(shù)來指定動態(tài)庫的搜索路徑,還需要使用-L(這是小寫的L)來指定動態(tài)庫的名稱,例如GCC-Ohello。C-L/usr/OpenSSL/lib-lcrypto文件
網(wǎng)站題目:linuxgcc編譯找不到庫linux動態(tài)庫和靜態(tài)庫的區(qū)別?-創(chuàng)新互聯(lián)
本文地址:http://jinyejixie.com/article16/cceidg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、用戶體驗、網(wǎng)站維護(hù)、網(wǎng)站排名、靜態(tài)網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容