GCC編譯過程四個階段

GNU CC(簡稱爲gcc)是GNU項目中符合ANSI C標準的編譯系統,能夠編譯用C、C++和Object C等語言編寫的程序。gcc不僅功能強大,而且可以編譯如C、C++、Object C、Java、和Ada等多種語言,而且gcc又是一個交叉平臺編譯器,它能夠在當前CPU平臺上爲多種不同體系結構的硬件平臺開發軟件,因此尤其適合在嵌入式領域的開發編譯.

在一種計算機環境中運行的編譯程序,能編譯出在另外一種環境下運行的代碼,我們就稱這種編譯器支持交叉編譯。這個編譯過程就叫交叉編譯。 簡單地說,就是在一個平臺上生成另一個平臺上的可執行代碼。比如:在X86平臺上編譯的代碼在ARM平臺上也能運行。

GCC變異的四個階段包括

(1)預處理

(2)編譯

(3)彙編

(4)鏈接

預處理裏階段包括頭文件展開;宏替換;條件編譯include目錄中全部爲頭文件,由於程序中調用了頭文件,所以GCC編譯時頭文件中的內容加載到程序的首部。

在shell中輸入命令“gcc -E file.c -o file.i “,其中,參數E告訴gcc命令只進行預編譯,不做其他處理;參數o用來指明輸出的文件名爲file.i

編譯階段進行語法檢查;詞法分析。

在shell中輸入命令“gcc -c file.i -o file.s”,參數S告訴gcc命令只進行預編譯,不做其他處理;參數o用來指明輸出的文件名爲file.o

彙編階段生成彙編文件。

在shell中輸入命令“gcc -s file.c -o file.o”,參數c告訴gcc命令只進行預編譯,不做其他處理;參數o用來指明輸出的文件名爲file.s

鏈接階段把程序中所有的目標文件和所需的庫文件都鏈接在一起,生成一個可以直接運行的文件,即可執行文件。

在shell中輸入命令“gcc file.c -o file”,運行完畢後就會產生一個file的可執行文件,輸入命令“./file”執行文件,就可以得到運行結果。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章