gcc命令使用GNU推出的基於C/C++的編譯器,是開放源代碼領域應用最普遍的編譯器,具備功能強大,編譯代碼支持性能優化等特色。如今不少程序員都應用GCC,怎樣才能更好的應用GCC。目前,GCC能夠用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程序,可根據須要選擇安裝支持的語言。html
語法linux
gcc(選項)(參數)
選項程序員
-o:指定生成的輸出文件; -E:僅執行編譯預處理; -S:將C代碼轉換爲彙編代碼; -wall:顯示警告信息; -c:僅執行編譯操做,不進行鏈接操做。
參數性能優化
C源文件:指定C語言源代碼文件。
實例性能
經常使用編譯命令選項優化
假設源程序文件名爲test.c開放源代碼
無選項編譯連接htm
gcc test.c
將test.c預處理、彙編、編譯並連接造成可執行文件。這裏未指定輸出文件,默認輸出爲a.out。get
選項 -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 #將testfun.c編譯成testfun.o gcc -c test.c #將test.c編譯成test.o gcc -o testfun.o test.o -o test #將testfun.o和test.o連接成test
以上兩種方法相比較,第一中方法編譯時須要全部文件從新編譯,而第二種方法能夠只從新編譯修改的文件,未修改的文件不用從新編譯。
本文地址: http://www.linuxprobe.com/command-gcc.html編輯:李帥,審覈員:逄增寶