使用GCC由C語言源代碼文件生成可執行文件的過程不僅僅是編譯的過程,要經過四個相互關聯的步驟:預處理(Preprocessing),編譯(Compilation),匯編(Assembly)和連接(Linking).
命令GCC首先調用cpp進行預處理,在預處理過程中對源代碼文件中的文件包含(include),預編譯語句(如宏定義define等)進行分析.
接著調用cc1進行編譯,這個階段根據輸入文件生成以.o為后綴的目標文件.
匯編過程是針對匯編語言的步驟,調用as進行工作,一般來講,.S為后綴的匯編語言源代碼文件..s為后綴的匯編語言文件經過預編譯和匯編之后都會生成.o為后綴的目標文件.
當所有的目標文件都生成之后,GCC就調用ld來完成最后的關鍵性工作,這個階段就是連接.在連接階段,所有的目標文件被安排在可執行程序中的適當的位置,同時,該程序所調用到的庫函數也從各自所在的檔案庫中連接到合適的地方.