gcc命令使用GNU推出的基於C/C++的編譯器,是開放源代碼領域應用最普遍的編譯器,具備功能強大,編譯代碼支持性能優化等特色, 如今不少程序員都應用GCC,怎樣才能更好的應用GCC. 目前,GCC能夠用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程序,可根據須要選擇安裝支持的語言.程序員
gcc (選項)(參數)ruby
-o: 指定生成文件的輸出文件. -E: 僅執行編譯預處理. -S: 將c代碼轉換爲彙編代碼. -c: 僅執行編譯操做,不進行鏈接操做. -I: 指定頭文件路徑. -D: 指定宏. -O[1-3]: 優化程序(三個等級,1-3) -g: 添加調試信息. -wall: 顯示警告信息.
C源文件: 指定c語言源代碼文件.性能優化
gcc -E hello.c -o hello.i # 頭文件展開,宏替換,註釋去掉. gcc -S hello.i # c文件變成彙編文件(生產hello.s). gcc -c hello.s # 彙編文件變成二進制文件(生產hello.o). gcc hello.o -o hello # 將函數庫中相應的代碼組合到目標文件中. gcc hello.o # (生產a.out文件). gcc hello.c -I ./head.h_paht -o hello # -I參數指定頭文件路徑.
-E -S -c gcc *.o hello.c ---> hello.i(c文件) ---> hello.s(彙編文件) ---> hello.o(二進制文件) ---> a.out(可執行文件).
多個文件一塊兒編譯:函數
1. 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