Gcc編譯過程

2021-09-07 06:55:28 字數 488 閱讀 1325

假定有乙個原始檔:hello.c

gcc編譯它具體需要四步:

1、預處理

gcc -e hello.c > hello.i

這裡重定向到hello.i檔案,否則,會直接輸出到螢幕,注意預處理檔案必須以.i結尾。

2、編譯

gcc -s hello.i

編譯階段,會檢查語法錯誤,並輸出乙個.s結尾的檔案,這裡是hello.s。

如果用vim hello.s 可以看到該檔案其實是乙個彙編指令。

3、彙編

gcc -c hello.s

彙編後,產生hello.o檔案,注意:該檔案不能執行,因為可能缺少鏈結庫。

以上3步也可以編譯c++的原始檔,但是,最後鏈結需要g++的鏈結庫。

4、鏈結

gcc  hello.o -o hello

鏈結需要的庫檔案,該步驟可以檢查出寫錯誤的函式名,提示無法找到函式庫。

最後,生成可執行檔案hello。

gcc編譯過程

本文對gcc編譯器如何工作做乙個概要描述.更為詳細的資訊請參考編譯器手冊。當我們進行編譯的時候,要使用一系列的工具,我們稱之為工具鏈.其中包括 預處理器cpp,編譯器前端gcc g 彙編器as,聯結器ld.乙個編譯過程包括下面幾個階段 1 預處理。預處理器cpp將對原始檔中的巨集進行展開。2 編譯。...

gcc編譯過程

當我們進行編譯的時候,要使用一系列的工具,我們稱之為工具鏈.其中包括 預處理器cpp,編譯器前端gcc g 彙編器as,聯結器ld.乙個編譯過程包括下面幾個階段 1 預處理。預處理器cpp將對原始檔中的巨集進行展開。2 編譯。gcc將c檔案編譯成彙編檔案。3 彙編。as將彙編檔案編譯成機器碼。4 連...

GCC編譯過程

第一步 預處理後結束 引數 e gcc e hello.c o hello.i 檢視hello.i檔案中的內容 cat hello.i stdio.h的內容插入到檔案裡去了,巨集定義也在預處理中都做了相應的處理 第二步 將hello.i 編譯為 目標 引數 c gcc c hello.i o hel...