久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux中動(dòng)態(tài)庫和靜態(tài)庫的區(qū)別有哪些

150次閱讀
沒有評論

共計(jì) 1060 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。

這篇文章將為大家詳細(xì)講解有關(guān) linux 中動(dòng)態(tài)庫和靜態(tài)庫的區(qū)別有哪些,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

區(qū)別:1、靜態(tài)庫在程序編譯時(shí)會(huì)被連接到目標(biāo)代碼中,程序運(yùn)行時(shí)將不再需要該靜態(tài)庫;動(dòng)態(tài)庫在程序編譯時(shí)并不會(huì)被連接到目標(biāo)代碼中,而是在程序運(yùn)行時(shí)才被載入,因此在程序運(yùn)行時(shí)還需要?jiǎng)討B(tài)庫存在。2、動(dòng)態(tài)庫產(chǎn)生的文件比較小,靜態(tài)庫產(chǎn)生的文件比較大。

本教程操作環(huán)境:CentOS 6 系統(tǒng)、Dell G3 電腦。

linux 中動(dòng)態(tài)庫和靜態(tài)庫的相同點(diǎn)和區(qū)別

相同點(diǎn):

無論靜態(tài)庫,還是動(dòng)態(tài)庫,都是由.o 文件創(chuàng)建的。因此,我們必須將源程序通過 gcc 先編譯成.o 文件;

區(qū)別:

1、代碼載入時(shí)間不同

靜態(tài)庫在程序編譯時(shí)會(huì)被連接到目標(biāo)代碼中,程序運(yùn)行時(shí)將不再需要該靜態(tài)庫;

動(dòng)態(tài)庫在程序編譯時(shí)并不會(huì)被連接到目標(biāo)代碼中,而是在程序運(yùn)行時(shí)才被載入,因此在程序運(yùn)行時(shí)還需要?jiǎng)討B(tài)庫存在

2、編譯規(guī)則不同

動(dòng)態(tài)庫編譯

動(dòng)態(tài)類庫的名字一般是 libxxx.so,動(dòng)態(tài)函數(shù)庫在編譯的時(shí)候 并沒有被編譯進(jìn)目標(biāo)代碼中,你的程序執(zhí)行到相關(guān)函數(shù)時(shí)才調(diào)用該函數(shù)庫里的相應(yīng)函數(shù),因此動(dòng)態(tài)函數(shù)庫所產(chǎn)生的可執(zhí)行文件比較小;

動(dòng)態(tài)庫編譯時(shí):最主要的是 GCC 命令行的一個(gè)選項(xiàng),-shared 該選項(xiàng)指定生成動(dòng)態(tài)連接庫,例如:

g++ -shared -o libd1.so d1.o    /* 根據(jù)中間目標(biāo)文件 d1.o 創(chuàng)建動(dòng)態(tài)庫文件 d1.so*/

g++ -shared -o libd2.so d2.o    /* 根據(jù)中間目標(biāo)文件 d2.o 創(chuàng)建動(dòng)態(tài)庫文件 d2.so*/

靜態(tài)庫編譯

類庫的名字一般是 libxxx.a;利用靜態(tài)函數(shù)庫編譯成的文件比較大,因?yàn)檎麄€(gè) 函數(shù)庫的所有數(shù)據(jù)都會(huì)被整合進(jìn)目標(biāo)代碼中,他的優(yōu)點(diǎn)就顯而易見了,即編譯后的執(zhí)行程序不需要外部的函數(shù)庫支持,因?yàn)樗惺褂玫暮瘮?shù)都已經(jīng)被編譯進(jìn)去了。當(dāng)然這也會(huì)成為他的缺點(diǎn),因?yàn)槿绻o態(tài)函數(shù)庫改變了,那么你的程序必須重新編譯。

UNIX 中,使用 ar 命令創(chuàng)建或者操作靜態(tài)庫

ar     archivefile objfile

archivefile:archivefile 是靜態(tài)庫的名稱

objfile:objfile 是已.o 為擴(kuò)展名的中間目標(biāo)文件名,可以多個(gè)并列;

例如:

g++ -o hello.o -c hello.cpp
ar cqs libHello.a hello.o

關(guān)于“l(fā)inux 中動(dòng)態(tài)庫和靜態(tài)庫的區(qū)別有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)1060字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 凤翔县| 台前县| 库尔勒市| 日喀则市| 蛟河市| 腾冲县| 永福县| 重庆市| 博乐市| 威宁| 南丹县| 广南县| 南昌市| 沁源县| 和政县| 桐柏县| 抚宁县| 社旗县| 鹿邑县| 隆昌县| 昌平区| 普定县| 彰武县| 福安市| 中宁县| 临猗县| 郎溪县| 洪湖市| 海阳市| 洪泽县| 淮安市| 军事| 灵丘县| 通州区| 富平县| 龙里县| 凤冈县| 商都县| 迁西县| 丹寨县| 盐城市|