流程圖
由的流程圖可得,使用gcc編譯器編譯C源程序需要經過四個處理步驟。
1.預編譯:
- 預編譯作用:
處理 | 處理效果 |
a.將頭文件解析 | 把頭文件的解析得來內容代替頭文件代碼 |
b.處理預處理命令 | 選擇相應的代碼段 |
c.展開宏 | 將代碼中的宏替換成相應的數值 |
d.刪除註釋 | 刪除註釋 |
- 預編譯只會進行以上四個步驟,此過程不會檢查代碼邏輯,即不具有代碼報錯功能。
- 命令:gcc -E -o hello.i hello.c
.c源文件與.i預編譯文件對比圖
2.編譯
- 編譯過程就是將預編譯文件.i編譯成彙編文件,此過程具有代碼報錯功能。
- 命令:gcc -S -o hello.s hello.i
.s彙編指令文件與.i預編譯文件對比圖
3.彙編
- 彙編就是將彙編指令文件.s編譯成機器唯一識別的二進制文件.o
- 命令:gcc -c -o hello.o hello.s
.o二進制文件與.彙編指令文件對比圖
4.鏈接
- 鏈接就是將彙編生成的OBJ文件、系統庫的OBJ文件、庫文件鏈接起來,最終生成可以在特定平臺運行的可執行程序。
- 命令:gcc -o hello hello.o