1. 程式人生 > >gcc基本功能以及常見編譯選項

gcc基本功能以及常見編譯選項

執行文件 類型 pos 轉換 控制臺 控制 spa 擴展 -c

1、gcc xxx.c主要包含以下4部分功能:

(1) 預處理:主要實現對頭文件的包含以及宏替換等

(2) 編 譯:主要將高級語言轉換為匯編語言

(3) 匯 編:主要將匯編語言翻譯成機器指令,得到目標文件

(4) 鏈 接:主要將目標文件和庫文件進行鏈接,生成可執行文件

2、常見的編譯選項

(1) -E - 進行預處理,預處理的結果默認輸出到控制臺

  使用gcc -E xxx.c -o xxx.i 將預處理結果定位到xxx.i文件中,預處理後的文件主要包含:頭文件,類型的別名,各種函數的聲明等等

(2) -S - 進行編譯處理,生成匯編文件xxx.s

(3) -c - 進行匯編處理,生成目標文件xxx.o

(4) gcc/cc xxx.o - 鏈接處理,生成可執行文件a.out

例:

  gcc/cc -E xxx.c -o xxx.i

=> 預處理,生成 .i 文件

  gcc/cc -S xxx.i/xxx.c

=> 編譯,生成 .s 文件

  gcc/cc -c xxx.s/xxx.i/xxx/c

=> 匯編,生成 .o文件

  gcc/cc xxx.o/xxx.s/xxx.i/xxx.c

=>鏈接,生成a.out文件

3、熟悉的選項:

  -std    - 主要用於指定編譯時遵循的C標準

  -Wall   - 主要用於盡可能的產生警告信息

  -Werror  - 主要用於將警告當做錯誤進行處理

4、了解的選項:

  -v   - 主要用於查看gcc的版本信息

  -g   - 主要用於生成調試信息(gdb調試)

  -O   - 主要用於進行優化處理

  -x    - 主要用於顯示指定源代碼的編程語言

5、 擴展的選項

  man gcc/cc 查看gcc更多的選項等信息

gcc基本功能以及常見編譯選項