天天看點

GCC編譯過程及基本用法

GCC是有GNU開發的程式設計語言編譯器。

使用GCC編譯器,目的大多都是将源代碼編譯成可執行檔案。

但是在這看似簡單的一步,實則經過了預處理(Preprocessing)

編譯(Compilation)、彙編(Assembly)和連結(Linking)四個步驟;

GCC編譯過程及基本用法

步驟指令參數:

預處理:-E

編譯:-S

彙編:-c

連結:直接加.o檔案

1、預處理:将源代碼中包含頭檔案、宏定義語句展開分析,整合一套新的代碼檔案輸出到

字尾為“.i”的檔案中,作為下一步的編譯的入力檔案。

指令:gcc  -E file.c -o file.i

GCC編譯過程及基本用法

2、編譯:将預處理生成的.i檔案編成字尾為“.s”的彙編檔案。

指令:gcc -S file.i -o hello.s

GCC編譯過程及基本用法

3、彙編:将編譯生成的.s彙編檔案,翻譯成機器規定的機器代碼,字尾為.o的檔案。

指令:gcc  -c file.s -o file.o

GCC編譯過程及基本用法

4、連結:将彙編生成的二進制機器代碼,系統的庫檔案等連結在一起,生成一個可以再linux

平台運作的可執行檔案。

指令:gcc  file.o -o file

GCC編譯過程及基本用法

GCC編譯器主要實作上面四個步驟,生成最終的可執行檔案;

當不需要這些單步運作的時候,可以直接使用gcc指令,一步生成可執行檔案;

指令:gcc file.c -o file   //生成可執行檔案file

           gcc file.c             //生成可執行檔案a.out

注意:當使用gcc指令時。可在指令後邊加上- wall參數,可以顯示所有警告資訊。

繼續閱讀