0%

GCC Notes

gcc 常用參數介紹

  • 什麼參數都不加

    1
    $ gcc hello.c

    直接產生a.out

  • 無連結選項

    1
    $ gcc hello.c -o hello

    直接產生可執行文件hello

  • -x language filename
    設定文件所使用的語言,使預設的附檔名失效,對之後的檔案也有效,除非你再次設定這個參數。可以使用的語言有C/C++等。

    1
    $ gcc -x c hello.pig

    上面這個例子,就是將附檔名pig的檔案當作C語言來編譯。如果在後面加上了-x none filename,則會抵銷前面的作用,回復復育社規則來編譯。

    1
    $ gcc -x c hello.pig -x none hello2.c
  • -c
    將程式碼生成至obj file後停止,預設附檔名是.o。

  • -S
    將程式生成至Assembler Code後停止,預設附檔名是.s。

  • -E
    只處理Preprocess的部份,跟上面兩者不同,不會產生檔案,需要用Redirect的方式產生文件。

    1
    2
    $ gcc -E hello.c > hello.i
    $ gcc -E hello.c | less
  • -o
    指定輸出檔案名稱,可以跟上面參數合併使用。

    1
    2
    3
    $ gcc -S hello.c -o hello.asm
    $ gcc -c hello.c -o hello.obj
    $ gcc hello.c -o hello.exe
  • -ansi
    關閉GNU C和ANSI C不相容的部分,在C模式相當於c90,在C++模式相當於C++98。如asm、``inlinetypeof等。如果你不考慮寫個標準的ISO C語言的話,在-ansi參數下還是能夠用asminlinetypeof`等GCC拓展語法繼續工作。如果要避免這種情況,可以配合底下這個參數。

  • -pedandic
    對所有不合乎C/C++ Standard的與法發出嚴重警告,