静态链接库与动态链接库的优缺点
1 靜態(tài)鏈接庫的優(yōu)點(diǎn)?
?(1) 代碼裝載速度快,執(zhí)行速度略比動(dòng)態(tài)鏈接庫快;?
?(2) 只需保證在開發(fā)者的計(jì)算機(jī)中有正確的.LIB文件,在以二進(jìn)制形式發(fā)布程序時(shí)不需考慮在用戶的計(jì)算機(jī)上.LIB文件是否存在及版本問題,可避免DLL地獄等問題。?
2 動(dòng)態(tài)鏈接庫的優(yōu)點(diǎn)?
?(1) 更加節(jié)省內(nèi)存并減少頁面交換;
?(2) DLL文件與EXE文件獨(dú)立,只要輸出接口不變(即名稱、參數(shù)、返回值類型和調(diào)用約定不變),更換DLL文件不會(huì)對(duì)EXE文件造成任何影響,因而極大地提高了可維護(hù)性和可擴(kuò)展性;
?(3) 不同編程語言編寫的程序只要按照函數(shù)調(diào)用約定就可以調(diào)用同一個(gè)DLL函數(shù);
?(4)適用于大規(guī)模的軟件開發(fā),使開發(fā)過程獨(dú)立、耦合度小,便于不同開發(fā)者和開發(fā)組織之間進(jìn)行開發(fā)和測(cè)試。
3 不足之處
?(1) 使用靜態(tài)鏈接生成的可執(zhí)行文件體積較大,包含相同的公共代碼,造成浪費(fèi);
?(2) 使用動(dòng)態(tài)鏈接庫的應(yīng)用程序不是自完備的,它依賴的DLL模塊也要存在,如果使用載入時(shí)動(dòng)態(tài)鏈接,程序啟動(dòng)時(shí)發(fā)現(xiàn)DLL不存在,系統(tǒng)將終止程序并給出錯(cuò)誤信息。而使用運(yùn)行時(shí)動(dòng)態(tài)鏈接,系統(tǒng)不會(huì)終止,但由于DLL中的導(dǎo)出函數(shù)不可用,程序會(huì)加載失敗;速度比靜態(tài)鏈接慢。當(dāng)某個(gè)模塊更新后,如果新模塊與舊的模塊不兼容,那么那些需要該模塊才能運(yùn)行的軟件,統(tǒng)統(tǒng)撕掉。這在早期Windows中很常見。
總結(jié)
以上是生活随笔為你收集整理的静态链接库与动态链接库的优缺点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 指针数组、数组指针、数组的区别与联系
- 下一篇: 野指针和悬空指针的形成原因和如何避免!