gcc编译参数
gcc 編譯流程:
預處理-Pre-Processing
-E 選項指示編譯器僅對輸入文件進行預處理。當這個選項被使用時, 預處理器的輸出被送到標準輸出而不是儲存在文件里
gcc -E code.c -o code.i //.i文件
編譯-Compiling
-S 編譯選項告訴 GCC 在為 C 代碼產生了匯編語言文件后停止編譯。
gcc -S code.i -o code.s //.s文件
匯編-Assembling
-c 選項告訴 GCC 僅把源代碼編譯為目標代碼。缺省時 GCC 建立的目標代碼文件有一個 .o 的擴展名。
gcc -c code.s -o code.o//.o文件
鏈接-Linking
-o 編譯選項來為將產生的可執行文件用指定的文件名。
gcc code.o -o a//bin文件
其他選項:
| -g | 產生帶調試信息的編譯后目標代碼,供調試器(gdb)使用 | gcc -g source.c |
| -C | 預處理時不刪除注釋信息 | 配合-E使用 |
| -O | 使用編譯優化級別1編譯程序。O后還可附帶其他的數值,表示不同的優化級別。級別越大優化效果越好,但編譯時間越長 | -O0:無優化(默認) 。 -O和-O1:優化可執行文件大小及執行時間,且不使編譯時間明顯增加。編譯大型程序時會顯著增加編譯時內存的使用。 -O2:包含-O1的優化,并增加無需在目標文件大小和執行速度上進行折衷的優化。編譯器不執行循環展開及函數內聯,即不進行“空間換時間”的優化。該選項將增加編譯時間和目標文件的執行性能。-Os:執行所有不增加目標文件大小的-O2選項,并執行專門減小目標文件大小的優化選項。 -O3: 打開所有-O2優化選項并且增加 -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload和-ftree-vectorize優化選項。[e.g.1]gcc -O1 source.c -o exec |
| -shared | 生成共享目標文件 | 用于建立共享鏈接庫 |
| -w | 禁止顯示任何警告信息 | |
| -Wall | 顯示全部警告信息 | |
| –version | 顯示gcc版本號和版本信息 |
總結
- 上一篇: TamronOS IPTV系统 ping
- 下一篇: 亚马逊成人用品巨头日本Aivrobta品