日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
深入淺出LinuxFPI編譯原理(linuxfpic)

linux 現(xiàn)在在開(kāi)發(fā)PC軟件、嵌入式開(kāi)發(fā)以及移動(dòng)設(shè)備軟件方面已經(jīng)大行其道,而編譯原理也是其中重要一環(huán)。所謂編譯原理就是將人們編寫(xiě)的源代碼轉(zhuǎn)換成為機(jī)器可以識(shí)別的二進(jìn)制代碼(0、1序列),以便能夠讓計(jì)算機(jī)執(zhí)行。

(編譯原理著重于如何將源代碼轉(zhuǎn)換為可執(zhí)行的二進(jìn)制代碼)

要理解 Linux 編譯原理,我們首先要理解編譯過(guò)程,Linux 編譯過(guò)程有3步:

1. 預(yù)編譯:此階段包括將命令行參數(shù)解析為適當(dāng)?shù)膮?shù),從源文件中包含預(yù)處理代碼,以及處理宏替換等步驟。它將源代碼預(yù)處理,將輸出轉(zhuǎn)換為它可以由編譯器理解的簡(jiǎn)單格式。

“`C

#include

int main(){

int a = 10;

printf(“a=%d\n”,a);

return 0;

}


在預(yù)編譯階段,將會(huì)進(jìn)行代碼的預(yù)處理,如上面的代碼中的`#include`宏會(huì)被替換為`stdio.h`的頭文件,并且編譯器會(huì)在編譯任務(wù)中加入對(duì)該頭文件的編譯任務(wù)。

2. 編譯:此階段將源代碼轉(zhuǎn)換為機(jī)器指令,從而使源代碼易于理解和執(zhí)行。

```C
.L.text:0000000000400480 ; ============= segment type: Pure code
.L.text:0000000000400480
.L.text:0000000000400480 ; -- File Contents of /usr/include/stdio.h:
.L.text:0000000000400480
.L.text:0000000000400480 movl $0xa, %esi
.L.text:0000000000400487 mov $0x4005e0, %edi
.L.text:000000000040048c call 0x400400

在編譯階段,將源代碼轉(zhuǎn)換為機(jī)器指令,如上面的代碼是為了實(shí)現(xiàn) printf 函數(shù)的調(diào)用,將會(huì)生成多條匯編指令,例如`movl`、`mov`以及`call`,它們可以被CPU執(zhí)行來(lái)實(shí)現(xiàn) printf 函數(shù)的功能。

3. 鏈接:此階段包括將編譯生成的可重定位目標(biāo)文件連接在一起,從而生成最終的可執(zhí)行文件。

“`asm

ff 25 00 a0 40 00 jmp *0x00400a0


在鏈接階段,將會(huì)為可重定位的文件生成可執(zhí)行的文件,比如上面的指令` jmp`就是用于跳轉(zhuǎn)到某個(gè)指定的地址,當(dāng)遇到此指令時(shí),CPU會(huì)定位轉(zhuǎn)到指定的地址,繼續(xù)執(zhí)行下去。

因此,Linux 編譯原理由這三個(gè)步驟組成,分別是預(yù)編譯、編譯和鏈接,上述步驟完成之后,就能夠生成可執(zhí)行文件,以便讓計(jì)算機(jī)去執(zhí)行程序??梢哉f(shuō),了解 Linux 編譯原理有助于開(kāi)發(fā)者更好的理解它的編寫(xiě)流程,并且更加高效地開(kāi)發(fā) Linux 平臺(tái)的程序。

創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話(huà):13518219792


網(wǎng)頁(yè)名稱(chēng):深入淺出LinuxFPI編譯原理(linuxfpic)
分享URL:http://m.5511xx.com/article/cddhoio.html