歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> GCC的工作過程

GCC的工作過程

日期:2017/3/1 9:35:53   编辑:Linux編程

GCC或者G++由源文件生成可執行文件的過程,可以分為4個階段:預處理,編譯,匯編,連接。

在功能上,預處理,編譯,匯編是三個不同的階段,但是GCC實際操作上把它合並為一個步驟來執行。

下面來說明:

(1)預處理階段

這個階段主要是處理源文件中的#ifdef,#include,#define等命令。該階段會生成一個中間文件*.i,我們

可以用如下命令來生成這種文件(以Hello.c文件為例):

gcc -E Hello.c -o Hello.i

經過了預處理階段,打開Hello.i文件就會發現所有的諸如#define等定義的常量都被真實數字替換掉了。

(2)編譯

在編譯階段,是把預處理階段的Hello.i文件生成匯編語言文件Hello.s,那麼可以用如下命令:

gcc -S Hello.i -o Hello.s

我們打開Hello.s文件,然後會發現裡面全是Hello.c源文件對應的匯編代碼了。

(3)匯編

在匯編階段,是把編譯階段生成的匯編語言文件Hello.s生成機器語言文件Hello.o。

gcc -C Hello.s -o Hello.o

這樣我們就生成了機器語言文件Hello.o了。

(4)連接

在最後的連接階段,是將匯編階段生成的機器語言文件Hello.o匯集成一個可執行的二進制代碼文件。

gcc Hello.o -o Hello

從上面可以看出,在gcc工作過程中,Hello.c文件的經過為:Hello.c -> Hello.i -> Hello.s -> Hello.o -> Hello.

Ubuntu 12.04嵌入式交叉編譯環境arm-linux-GCC搭建過程圖解 http://www.linuxidc.com/Linux/2013-06/85902.htm

Ubuntu 12.10安裝交叉編譯器arm-none-linux-gnueabi-GCC http://www.linuxidc.com/Linux/2013-03/82016.htm

Ubuntu下Vim+GCC+GDB安裝及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm

Ubuntu下兩個GCC版本切換 http://www.linuxidc.com/Linux/2012-10/72284.htm

GCC 的詳細介紹:請點這裡
GCC 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved