gcc命令的用法

gcc命令

使用GNU推出的基于C/C++的編譯器,是開放源代碼領(lǐng)域應(yīng)用最廣泛的編譯器,具有功能強(qiáng)大,編譯代碼支持性能優(yōu)化等特點(diǎn)。現(xiàn)在很多程序員都應(yīng)用GCC,怎樣才能更好的應(yīng)用GCC。目前,GCC可以用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程序,可根據(jù)需要選擇安裝支持的語言。

語法

gcc(選項(xiàng))(參數(shù)) 

選項(xiàng)

  • -o:指定生成的輸出文件;
  • -E:僅執(zhí)行編譯預(yù)處理;
  • -S:將C代碼轉(zhuǎn)換為匯編代碼;
  • -wall:顯示警告信息;
  • -c:僅執(zhí)行編譯操作,不進(jìn)行連接操作。

參數(shù)

C源文件:指定C語言源代碼文件。

實(shí)例

常用編譯命令選項(xiàng)

假設(shè)源程序文件名為test.c

無選項(xiàng)編譯鏈接
gcc test.c 

將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件。這里未指定輸出文件,默認(rèn)輸出為a.out。

選項(xiàng) -o
gcc test.c -o test 

將test.c預(yù)處理、匯編、編譯并鏈接形成可執(zhí)行文件test。-o選項(xiàng)用來指定輸出文件的文件名。

選項(xiàng) -E
gcc -E test.c -o test.i 

將test.c預(yù)處理輸出test.i文件。

選項(xiàng) -S
gcc -S test.i 

將預(yù)處理輸出文件test.i匯編成test.s文件。

選項(xiàng) -c
gcc -c test.s 

將匯編輸出文件test.s編譯輸出test.o文件。

無選項(xiàng)鏈接
gcc test.o -o test 

將編譯輸出文件test.o鏈接成最終可執(zhí)行文件test。

選項(xiàng) -O
gcc -O1 test.c -o test 

使用編譯優(yōu)化級(jí)別1編譯程序。級(jí)別為1~3,級(jí)別越大優(yōu)化效果越好,但編譯時(shí)間越長(zhǎng)。

多源文件的編譯方法

如果有多個(gè)源文件,基本上有兩種編譯方法:

假設(shè)有兩個(gè)源文件為test.c和testfun.c 多個(gè)文件一起編譯

gcc testfun.c test.c -o test

將testfun.c和test.c分別編譯后鏈接成test可執(zhí)行文件。 分別編譯各個(gè)源文件,之后對(duì)編譯后輸出的目標(biāo)文件鏈接。

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

以上兩種方法相比較,第一中方法編譯時(shí)需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容