1. 程式人生 > >GCC 編譯詳解

GCC 編譯詳解

stand 空間 error 支持 預處理 -a 三級 net 錯誤

常用選項
-E:只進行預處理,不編譯
-S:只編譯,不匯編
-c:只編譯、匯編,不鏈接
-g:包含調試信息
-I:指定include包含文件的搜索目錄
-o:輸出成指定文件名

高級選項
-v:詳細輸出編譯過程中所采用的每一個選項
-C:預處理時保留註釋信息
-ggdb:在可執行文件中包含可供GDB使用的調試信息
-fverbose-asm:在編譯成匯編語言時,把C變量的名稱作為匯編語言中的註釋
-save-temps:自動輸出預處理文件、匯編文件、對象文件,編譯正常進行
-fsyntax-only:只測試源文件語法是否正確,不會進行任何編譯操作
-ffreestanding:編譯成獨立程序,而非宿主程序

語言標準
-ansi:ANSI標準
-std=c99:C99標準
-std=gnu89:ISO/IEC 9899:1990 以及GNU擴充
-std=gnu99:ISO/IEC 9899:1999 以及GNU擴充
-trigraphs:支持ISO C三字符組

出錯提示
-w:忽略所有警告
-Werror:不區分警告和錯誤,遇到任何警告都停止編譯
-Wall:開啟大部分警告提示
-Wshadow:某語句塊作用域變量與更大作用域的另一變量同名時發出警告(此警告未包含在-Wall選項中,需單獨開啟)
-Wextra:對所有合法但值得懷疑的表達式發出警告

優化選項
-O0:關閉所有優化選項
-O1:第一級別優化,使用此選項可使可執行文件更小、運行更快,並不會增加太多編譯時間,可以簡寫為-O
-O2:第二級別優化,采用了幾乎所有的優化技術,使用此選項會延長編譯時間
-O3:第三級別優化,在-O2的基礎上增加了產生inline函數、使用寄存器等優化技術
-Os:此選項類似於-O2,作用是優化所占用的空間,但不會進行性能優化,常用於生成最終版本

轉載:http://blog.csdn.net/junmuzi/article/details/50924233

GCC 編譯詳解