以最簡單的c語言代碼為例,hello.c代碼如下:
#include
int main()
{
printf("hello world!\\n");
return 0;
}
1、預編譯
將.c中的頭文件展開、宏展開,生成的文件是.i文件。例如hello.c文件,生成過程是:
gcc -E hello.c -o hello.i
預處理的過程是將頭文件展開、替換,如果有宏,也會進行替換。這一步不進行語法檢查。
2、編譯
將預處理的.i文件生成.s的匯編文件。會進行語法檢查。
gcc -S hello.i -o hello.s
3、匯編
將.s匯編文件生成.o的目標文件。
gcc -c hello.s -o hello.o
4、鏈接
將.o文件鏈接成目標文件,也就是可執行程序
gcc hello.o -o hello
這一步中如果不加-o默認輸出的可執行程序時a.out。這四步是將整個編譯過程展開來看的,通常可以直接使用gcc hello.c,直接生成結果a.out。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7598瀏覽量
136207 -
匯編
+關注
關注
2文章
214瀏覽量
25904 -
源代碼
+關注
關注
96文章
2944瀏覽量
66670 -
編譯
+關注
關注
0文章
654瀏覽量
32809
發布評論請先 登錄
相關推薦
讓你快速學會DSP技術——DSP入門必備資料與常見問題解決
,如屏幕繪圖等。但在CCS中,為了方便調試,可以將數據通過printf命令虛擬輸出到主機的屏幕上。2)DSP的C語言的編譯過程為:C
發表于 10-15 15:37
DSP學習資料
的擴展部分,如屏幕繪圖等。但在 CCS 中,為了方便調試,可以將數據通過 prinf 命令虛擬輸出到主機的屏幕上。2)DSP 的 C 語言的編譯過程為,
發表于 07-06 17:22
詳細剖析C語言編譯過程
編譯---->形成目標代碼,目標代碼是在目標機器上運行的代碼。
連接---->將目標代碼與C函數庫相連接,并將源程序所用的庫代碼與目標代碼合并,并形成最終可執行的二進制機器代碼(程序)。
執行----->在特定的機器環境下運行
GCC編譯C語言程序的過程是怎么樣的
使用GCC將C語言源代碼文件生成可執行文件的過程,需要經歷四個的步驟:預處理(Preprocessing)編譯(Compilation)匯編(Assembly)鏈接(Linking)
評論