-O0: 不做任何優化,這是默認的編譯選項。
-O1:優化會消耗少多的編譯時間,它主要對代碼的分支,常量以及表達式等進行優化。
-O2:會嘗試更多的寄存器級的優化以及指令級的優化,它會在編譯期間佔用更多的內存和編譯時間。
-O3: 在O2的基礎上進行更多的優化,例如使用僞寄存器網絡,普通函數的內聯,以及針對循環的更多優化。
-g 和 -ggdb 都是令 gcc 生成調試信息,但是它們也是有區別的。
-g 選項利用操作系統的“原生格式(native format)”生成調試信息。GDB 可以直接利用這個信息,其它調試器也可以使用這個調試信息。
-ggdb 使 GCC 爲 GDB 生成專用的更爲豐富的調試信息。