GCC是有GNU開發的程式設計語言編譯器。
使用GCC編譯器,目的大多都是将源代碼編譯成可執行檔案。
但是在這看似簡單的一步,實則經過了預處理(Preprocessing)
編譯(Compilation)、彙編(Assembly)和連結(Linking)四個步驟;
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwUjN2MzMxgTM4IjMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
步驟指令參數:
預處理:-E
編譯:-S
彙編:-c
連結:直接加.o檔案
1、預處理:将源代碼中包含頭檔案、宏定義語句展開分析,整合一套新的代碼檔案輸出到
字尾為“.i”的檔案中,作為下一步的編譯的入力檔案。
指令:gcc -E file.c -o file.i
2、編譯:将預處理生成的.i檔案編成字尾為“.s”的彙編檔案。
指令:gcc -S file.i -o hello.s
3、彙編:将編譯生成的.s彙編檔案,翻譯成機器規定的機器代碼,字尾為.o的檔案。
指令:gcc -c file.s -o file.o
4、連結:将彙編生成的二進制機器代碼,系統的庫檔案等連結在一起,生成一個可以再linux
平台運作的可執行檔案。
指令:gcc file.o -o file
GCC編譯器主要實作上面四個步驟,生成最終的可執行檔案;
當不需要這些單步運作的時候,可以直接使用gcc指令,一步生成可執行檔案;
指令:gcc file.c -o file //生成可執行檔案file
gcc file.c //生成可執行檔案a.out
注意:當使用gcc指令時。可在指令後邊加上- wall參數,可以顯示所有警告資訊。