動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)有哪些區(qū)別?
靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)的載入時(shí)間是不一樣的。
靜態(tài)庫(kù)的代碼在編譯的過程中已經(jīng)載入到可執(zhí)行文件中,所以最后生成的可執(zhí)行文件相對(duì)較大。
動(dòng)態(tài)庫(kù)的代碼在可執(zhí)行程序運(yùn)行時(shí)才載入內(nèi)存,在編譯過程中僅簡(jiǎn)單的引用,所以最后生成的可執(zhí)行文件相對(duì)較小。
靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)的最大區(qū)別是,靜態(tài)庫(kù)鏈接的時(shí)候把庫(kù)直接加載到程序中,而動(dòng)態(tài)庫(kù)鏈接的時(shí)候,它只是保留接口,將動(dòng)態(tài)庫(kù)與程序代碼獨(dú)立,這樣就可以提高代碼的可復(fù)用度和降低程序的耦合度。
靜態(tài)庫(kù)在程序編譯時(shí)會(huì)被連接到目標(biāo)代碼中,程序運(yùn)行時(shí)將不再需要該靜態(tài)庫(kù)。
動(dòng)態(tài)庫(kù)在程序編譯時(shí)并不會(huì)被連接到目標(biāo)代碼中,而是在程序運(yùn)行是才被載入,因此在程序運(yùn)行時(shí)還需要?jiǎng)討B(tài)庫(kù)存在。
無(wú)論靜態(tài)庫(kù),還是動(dòng)態(tài)庫(kù),都是由.o文件創(chuàng)建的。因此,我們必須將源程序hello.c通過gcc先編譯成.o文件。
動(dòng)態(tài)庫(kù)存是什么意思?
動(dòng)態(tài)庫(kù)存的實(shí)際意思就是生產(chǎn)與銷售一體化。前端的銷售情況與庫(kù)存情況實(shí)時(shí)同步、后端的生產(chǎn)商就可以根據(jù)實(shí)時(shí)銷售情況調(diào)整生成的計(jì)劃,不會(huì)造成過多的庫(kù)存積壓。
關(guān)于我們 加入我們 聯(lián)系我們 商務(wù)合作
茶葉前線 www.cyqxw.com.cn 版權(quán)所有
投稿投訴聯(lián)系郵箱:8 8 6 2 3 9 5@qq.com