以最簡單的c語言代碼為例,hello.c代碼如下:
#include
int main()
{
printf("hello world!\\n");
return 0;
}
1、預(yù)編譯
將.c中的頭文件展開、宏展開,生成的文件是.i文件。例如hello.c文件,生成過程是:
gcc -E hello.c -o hello.i
預(yù)處理的過程是將頭文件展開、替換,如果有宏,也會進(jìn)行替換。這一步不進(jìn)行語法檢查。
2、編譯
將預(yù)處理的.i文件生成.s的匯編文件。會進(jìn)行語法檢查。
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è)編譯過程展開來看的,通常可以直接使用gcc hello.c,直接生成結(jié)果a.out。
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137800 -
匯編
+關(guān)注
關(guān)注
2文章
214瀏覽量
26014 -
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66978 -
編譯
+關(guān)注
關(guān)注
0文章
661瀏覽量
33064
發(fā)布評論請先 登錄
相關(guān)推薦
C語言的編譯過程
![<b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>編譯</b><b class='flag-5'>過程</b>](https://file1.elecfans.com/web2/M00/8A/90/wKgZomSXqDmANj9CAABbbODkiAc558.jpg)
![](https://file1.elecfans.com/web2/M00/83/6D/wKgZomRl2oOAa74VAAE3vPw3OiE266.png)
嵌入式物聯(lián)網(wǎng)教程 4.01 C語言編譯過程 #嵌入式物聯(lián)網(wǎng) #硬聲創(chuàng)作季
讓你快速學(xué)會DSP技術(shù)——DSP入門必備資料與常見問題解決
C語言基礎(chǔ)與數(shù)據(jù)類型概述
DSP學(xué)習(xí)資料
詳細(xì)剖析C語言編譯過程
![詳細(xì)剖析<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>編譯</b><b class='flag-5'>過程</b>](https://file.elecfans.com/web1/M00/45/EC/o4YBAFp8EoOAYfi6AAAhPX-9a0c775.png)
做DSP應(yīng)該了解那些知識做DSP最應(yīng)該懂得的57個(gè)問題介紹
![做DSP應(yīng)該了解那些知識做DSP最應(yīng)該懂得的57個(gè)問題介紹](https://file.elecfans.com/web1/M00/82/0C/pIYBAFw1VeCAOGCAAAJ_wOz34yU349.png)
做DSP最應(yīng)該懂得那些問題十四個(gè)問題的詳細(xì)資料說明
![做DSP最應(yīng)該懂得那些問題十四個(gè)問題的詳細(xì)資料說明](https://file.elecfans.com/web1/M00/93/43/pIYBAFznlwqACztqAAL5TyBp7rU532.png)
評論