1. 程式人生 > >linux編譯c語言口令

linux編譯c語言口令

GCC

Linux下使用最廣泛的C/C++編譯器是GCC,大多數的Linux發行版本都預設安裝,不管是開發人員還是初學者,一般都將GCC作為Linux下首選的編譯工具。本教程毫不猶豫地使用GCC來編譯C程式。

儲存檔案後退出,開啟終端並 cd 到當前目錄,輸入下面的命令:
    gcc test.c -o test
可以直接將C程式碼編譯連結為可執行檔案。

可以看到在當前目錄下多出一個檔案 test,這就是可執行檔案。不像Windows,Linux不以檔案字尾來區分可執行檔案,Linux下的可執行檔案字尾理論上是可以任意更改的。

當然,也可以分步編譯:

1) 預處理
    gcc -E test.c -o test.i
在當前目錄下會多出一個預處理結果檔案 test.i,開啟 test.i 可以看到,在 test.c 的基礎上把stdio.h和stdlib.h的內容插進去了。

2) 編譯為彙編程式碼


    gcc -S test.i -o test.s
其中-S引數是在編譯完成後退出,-o為指定檔名。

3) 彙編為目標檔案
    gcc -c test.s -o test.o
.o就是目標檔案。目標檔案與可執行檔案類似,都是機器能夠識別的可執行程式碼,但是由於還沒有連結,結構會稍有不同。

3) 連結並生成可執行檔案
    gcc test.o -o test

如果有多個原始檔,可以這樣來編譯:
    gcc -c test1.c -o test1.o
    gcc -c test2.c -o test2.o
    gcc test1.o test2.o -o test

注意:如果不指定檔名,GCC會生成名為a.out的檔案,.out檔案只是為了區分編譯後的檔案,Linux下並沒有標準的可執行檔案字尾名,一般可執行檔案都沒有後綴名。
編譯後生成的test檔案就是程式了,執行它:
    ./test


對於程式的檢錯,我們可以用-pedantic、-Wall、-Werror選項:

  • -pedantic選項能夠幫助程式設計師發現一些不符合 ANSI/ISO C標準的程式碼(並不是全部);
  • -Wall可以讓gcc顯示警告資訊;
  • -Werror可以讓gcc在編譯中遇到錯誤時停止繼續。

這3個選項都是非常有用的。