成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

ios軟件分發(fā)源碼搭建教程手把手 risc-v架構(gòu)為啥能開(kāi)源?

risc-v架構(gòu)為啥能開(kāi)源?RISC-V架構(gòu)是開(kāi)源的,因?yàn)樗捎瞄_(kāi)源許可,所以其他開(kāi)發(fā)者可以使用、修改和分發(fā)源代碼,從而有效地促進(jìn)其發(fā)展。如何在linux平臺(tái)生成靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)?動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)

risc-v架構(gòu)為啥能開(kāi)源?

RISC-V架構(gòu)是開(kāi)源的,因?yàn)樗捎瞄_(kāi)源許可,所以其他開(kāi)發(fā)者可以使用、修改和分發(fā)源代碼,從而有效地促進(jìn)其發(fā)展。

如何在linux平臺(tái)生成靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)?

動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)

在Win下,動(dòng)態(tài)庫(kù)以。dll和靜態(tài)庫(kù)以。lib。

在Linux下,動(dòng)態(tài)庫(kù)文件以。靜態(tài)庫(kù)以。a.

在Mac下,動(dòng)態(tài)庫(kù)以。dylib和靜態(tài)庫(kù)以。a.

動(dòng)態(tài)圖書(shū)館的利與弊

動(dòng)態(tài)函數(shù)庫(kù)在編譯時(shí)并沒(méi)有編譯成目標(biāo)代碼,只有在你的程序執(zhí)行相關(guān)函數(shù)時(shí)才會(huì)調(diào)用函數(shù)庫(kù)中對(duì)應(yīng)的函數(shù),所以動(dòng)態(tài)函數(shù)庫(kù)生成的可執(zhí)行文件比較小。因?yàn)楹瘮?shù)庫(kù)不是集成到你的程序中,而是在程序運(yùn)行時(shí)動(dòng)態(tài)應(yīng)用和調(diào)用的,所以程序的運(yùn)行環(huán)境中必須提供相應(yīng)的庫(kù)。動(dòng)態(tài)函數(shù)庫(kù)的改變不影響你的程序,升級(jí)動(dòng)態(tài)函數(shù)庫(kù)更方便。

當(dāng)一個(gè)程序在運(yùn)行時(shí)調(diào)用一個(gè)動(dòng)態(tài)鏈接庫(kù)函數(shù)時(shí),操作系統(tǒng)首先查看所有正在運(yùn)行的進(jìn)程,看是否有人加載了這個(gè)庫(kù)。有就直接用。如果沒(méi)有,它將被加載。這樣做的第一個(gè)好處是節(jié)省內(nèi)存空間。動(dòng)態(tài)調(diào)入意味著要等到需要的時(shí)候,而不是不管用不用都先放在內(nèi)存里。

如果我想升級(jí)一些軟件。如果升級(jí)位置在dll中,則軟件的其他部分不需要重新編譯鏈接。所以升級(jí)方便。

靜態(tài)庫(kù)的優(yōu)點(diǎn)和缺點(diǎn)

靜態(tài)函數(shù)庫(kù)編譯的文件比較大,因?yàn)檎麄€(gè)函數(shù)庫(kù)在編譯的時(shí)候會(huì)集成到目標(biāo)代碼中,它的優(yōu)勢(shì)很明顯,就是編譯的執(zhí)行程序不需要外部函數(shù)庫(kù)的支持,因?yàn)槭褂玫暮瘮?shù)都已經(jīng)編譯好了。當(dāng)然這也會(huì)是他的缺點(diǎn),因?yàn)槿绻愕撵o態(tài)鏈接函數(shù)庫(kù)發(fā)生了變化,那么你的程序就必須重新編譯。

代碼更加精簡(jiǎn),因?yàn)椴恍枰M(jìn)行版本檢查。

當(dāng)程序被分發(fā)時(shí),文件的數(shù)量很少,因?yàn)樗庆o態(tài)鏈接到源文件的。

僅編譯庫(kù)中使用的部分,而不是整個(gè)庫(kù)。

生成的二進(jìn)制文件會(huì)占用更多空間。

重復(fù)的庫(kù)可能出現(xiàn)在多個(gè)進(jìn)程中,浪費(fèi)內(nèi)存。

如果庫(kù)內(nèi)部更新,二進(jìn)制文件需要重新編譯。

Linu臺(tái)的靜態(tài)庫(kù)

靜態(tài)庫(kù)的生成

靜態(tài)庫(kù)的鏈接

Linu臺(tái)的動(dòng)態(tài)庫(kù)

動(dòng)態(tài)庫(kù)的生成

動(dòng)態(tài)庫(kù)的鏈接

Windows平臺(tái)的靜態(tài)庫(kù)

靜態(tài)庫(kù)/MT的生成使用編譯來(lái)創(chuàng)建多線(xiàn)程可執(zhí)行文件。生成靜態(tài)庫(kù)lib。

靜態(tài)庫(kù)的鏈接。使用鏈接庫(kù)在代碼開(kāi)頭添加,第二行是鏈接庫(kù)中要調(diào)用的函數(shù):

2.把要調(diào)用的鏈接庫(kù)的lib放到項(xiàng)目源代碼中,進(jìn)行編譯。你不 編譯時(shí)不需要?jiǎng)討B(tài)鏈接庫(kù)。在這里,將靜態(tài)部件庫(kù)編譯成Exe,但是動(dòng)態(tài)庫(kù)dll沒(méi)用。)

3.運(yùn)行前將dll放在exe目錄中。

Windows平臺(tái)的動(dòng)態(tài)庫(kù)

動(dòng)態(tài)庫(kù)/MD的生成使用編譯來(lái)創(chuàng)建多線(xiàn)程dll。生成動(dòng)態(tài)庫(kù)。

動(dòng)態(tài)庫(kù)的鏈接1,LoadLibrary(或者M(jìn)FC的AfxLoadLibrary),加載動(dòng)態(tài)庫(kù)。

,獲取要引入的函數(shù),將符號(hào)名或標(biāo)識(shí)號(hào)轉(zhuǎn)換成DLL的內(nèi)部地址。

(或MFC的AfxFreeLibrary),并釋放動(dòng)態(tài)鏈接庫(kù)。