天天看點

gcc 執行過程

雖然我們稱GCC是C語言的編譯器,但使用gcc由C語言源代碼檔案生成可執行檔案的過程不僅僅是編譯的過程,而是要經曆四個互相關聯的步驟∶預處理(也稱預編譯,Preprocessing)、編譯(Compilation)、彙編(Assembly)和連結(Linking)。

預編譯:

指令gcc首先調用cpp進行預處理,在預處理過程中,對源代碼檔案中的檔案包含(include)、預編譯語句(如宏定義define等)進行分析。

編譯:

接着調用cc1進行編譯,這個階段根據輸入檔案生成以.i為字尾的目标檔案。

彙編:

彙編過程是針對彙編語言的步驟,調用as進行工作,一般來講,.S為字尾的彙編語言源代碼檔案和彙編、.s為字尾的彙編語言檔案經過預編譯和彙編之後都生成以.o為字尾的目标檔案。

連結:

當所有的目标檔案都生成之後,gcc就調用ld來完成最後的關鍵性工作,這個階段就是連接配接。在連接配接階段,所有的目标檔案被安排在可執行程式中的恰當的位置,同時,該程式所調用到的庫函數也從各自所在的檔案庫中連到合适的地方。

上一篇: GCC使用入門
下一篇: GCC安裝UBUNTU