Linux中的gcc編譯器
Gcc命令使用GNU推出的基於C/C++的編譯器,是開放原始碼領域應用最廣泛的編譯器,具有功能強大,編譯程式碼支援效能優化等特點。
語法: gcc(選項)(引數) 選項: -o:指定生成的輸出檔案; -E:僅執行編譯預處理; -S:將C程式碼轉換為彙編程式碼; -wall:顯示警告資訊; -c:僅執行編譯操作,不進行連線操作。 引數: C原始檔:指定C語言原始碼檔案。 例項: 常用編譯命令選項 假設源程式檔名為test.c 無選項編譯連線 gcc test.c 將test.c預處理、彙編、編譯並連結形成可執行檔案。這裡未指定輸出檔案,預設為a.out。 選項-o gcc test.c -o test 將test.c 預處理、彙編、編譯並連結成可執行檔案test。-o用來指定輸出檔名。 選項-E gcc –E test.c –o test.i 將test.c預處理輸出test.i檔案。 選項-S gcc –S test.i 將預處理輸出檔案test.i彙編成test.s檔案。 選項-c gcc –c test.s 將彙編輸出檔案test.s編譯輸出test.o檔案。 無選項鍊接 gcc test.o –o test 將編譯輸出檔案test.o連結成最終可執行檔案test。 選項-O Gcc –O1 test.c –o test 使用編譯優化級別1編譯程式。級別為1~3,級別越大優化效果越好,但編譯時間越長。 多原始檔的編譯 如果有多個原始檔,基本上有兩種編譯方法: 假設有兩個原始檔為test.c和testfun.c 多個檔案一起編譯 gcc testfun.c test.c –o test 將testfun.c和test.c分別編譯後連結成test可執行檔案。 分別編譯各個原始檔,之後對編譯後輸出的目標檔案連結。 gcc –c testfun.c gcc –c test.c gcc –o testfun.o test.o –o test#將testfun.o和test.o連結成test。