以最簡(jiǎn)單的c語(yǔ)言代碼為例,hello.c代碼如下:
#include
int main()
{
printf("hello world!\\n");
return 0;
}
1、預(yù)編譯
將.c中的頭文件展開(kāi)、宏展開(kāi),生成的文件是.i文件。例如hello.c文件,生成過(guò)程是:
gcc -E hello.c -o hello.i
預(yù)處理的過(guò)程是將頭文件展開(kāi)、替換,如果有宏,也會(huì)進(jìn)行替換。這一步不進(jìn)行語(yǔ)法檢查。
2、編譯
將預(yù)處理的.i文件生成.s的匯編文件。會(huì)進(jìn)行語(yǔ)法檢查。
gcc -S hello.i -o hello.s
3、匯編
將.s匯編文件生成.o的目標(biāo)文件。
gcc -c hello.s -o hello.o
4、鏈接
將.o文件鏈接成目標(biāo)文件,也就是可執(zhí)行程序
gcc hello.o -o hello
這一步中如果不加-o默認(rèn)輸出的可執(zhí)行程序時(shí)a.out。這四步是將整個(gè)編譯過(guò)程展開(kāi)來(lái)看的,通常可以直接使用gcc hello.c,直接生成結(jié)果a.out。
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141577 -
匯編
+關(guān)注
關(guān)注
2文章
214瀏覽量
26556 -
源代碼
+關(guān)注
關(guān)注
96文章
2953瀏覽量
68334 -
編譯
+關(guān)注
關(guān)注
0文章
679瀏覽量
33967
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言的編譯過(guò)程

C語(yǔ)言的編譯鏈接過(guò)程


嵌入式物聯(lián)網(wǎng)教程 4.01 C語(yǔ)言編譯過(guò)程 #嵌入式物聯(lián)網(wǎng) #硬聲創(chuàng)作季
讓你快速學(xué)會(huì)DSP技術(shù)——DSP入門(mén)必備資料與常見(jiàn)問(wèn)題解決
C語(yǔ)言基礎(chǔ)與數(shù)據(jù)類(lèi)型概述
DSP學(xué)習(xí)資料
詳細(xì)剖析C語(yǔ)言編譯過(guò)程

做DSP應(yīng)該了解那些知識(shí)做DSP最應(yīng)該懂得的57個(gè)問(wèn)題介紹

做DSP最應(yīng)該懂得那些問(wèn)題十四個(gè)問(wèn)題的詳細(xì)資料說(shuō)明

GCC編譯C語(yǔ)言程序的過(guò)程是怎么樣的
解析C語(yǔ)言編譯過(guò)程中所做的工作

為什么C語(yǔ)言要進(jìn)行編譯

評(píng)論