gcc編譯器

gcc是自由軟體基金會所開發之編譯器,早期全名為GNU C Compiler,不過在支援了更多程式語言如Ada、C++、Pascal之後,改名為GNU Compiler Collection。

這一個章節將介紹如何在終端機下編譯一個C語言檔案,首先我們先在workspace中使用vim建立一個叫做hello_world.c的的檔案

程式碼

#include "stdio.h"

int main(void)
{
  printf("Hello world\n");

  return 0;
}

檔案儲存之後可以透過以下指令編譯檔案:

gcc hello_world.c

由於沒有指定輸出格式,編譯器會依照預設將檔案命名為a.out

當然,你也可以指定你想要的檔名:

gcc -o hello hello_world.c

其中-o為gcc之輸出參數,參數後即可指定輸出檔名

詳細用法

指令:

gcc [option] filename

option為附加選項、filename原始檔案名稱,如:gcc -g -o test source.c

  • 常用選項

    -c : 只做編譯(不做連結)

    -S : 輸出組譯碼

    -E : 將預處理結果顯示

    -o filename : 指定輸出檔名(-O後綴的就是輸出的檔名)

    -ansi : 要求依據ansi c標準

    -Dmacro : 使定義巨集(marco)為有效

    -Dmarco=defn : 使定義巨集(marco)為defn

    -Wa,option : 將選項(option)傳給組譯器

    -wl,option : 將選項(option)傳給連結器

    -I : 追加include檔案的搜尋路徑

    -L : 追加library檔案的搜尋路徑

    -l : 指定連結的函式庫

    -Wall : 顯示所有的警告訊息

    -g : 編入除錯資訊(GDB除錯一定要加,以顯示變數名稱一類資料)

    -O2 : 做最佳化