gcc命令詳解


gcc命令使用GNU推出的基於C/C++的編譯器,是開放源代碼領域應用最廣泛的編譯器,具有功能強大,編譯代碼支持性能優化等特點。目前,GCC可以用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程序,可根據需要選擇安裝支持的語言。


語法

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。


多源文件的編譯方法

如果有多個源文件,基本上有兩種編譯方法。假設有兩個源文件為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

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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM