-o0:這個等級(字母「o」後面跟個零)關閉所有優化選項,也是cflags或cxxflags中沒有設定-o等級時的預設等級。這樣就不會優化**,這通常不是我們想要的。
-o1:這是最基本的優化等級。編譯器會在不花費太多編譯時間的同時試圖生成更快更小的**。這些優化是非常基礎的,但一般這些任務肯定能順利完成。
-o2:-o1的高階。這是推薦的優化等級,除非你有特殊的需求。-o2會比-o1啟用多一些標記。設定了-o2後,編譯器會試圖提高**效能而不會增大體積和大量占用的編譯時間。
-o3:這是最高最危險的優化等級。用這個選項會延長編譯**的時間,並且在使用gcc4.x的系統裡不應全域性啟用。自從3.x版本以來gcc的行為已經有了極大地改變。在3.x,-o3生成的**也只是比-o2快一點點而已,而gcc4.x中還未必更快。用-o3來編譯所有的軟體包將產生更大體積更耗記憶體的二進位制檔案,大大增加編譯失敗的機會或不可預知的程式行為(包括錯誤)。這樣做將得不償失,記住過猶不及。在gcc 4.x.中使用-o3是不推薦的。
-os:這個等級用來優化**尺寸。其中啟用了-o2中不會增加磁碟空間占用的**生成選項。這對於磁碟空間極其緊張或者cpu快取較小的機器非常有用。但也可能產生些許問題,因此軟體樹中的大部分ebuild都過濾掉這個等級的優化。使用-os是不推薦的。
GCC編譯選項
gcc g 在執行編譯工作的時候,總共需要4步 1.預處理,生成.i的檔案 預處理器cpp 2.將預處理後的檔案不轉換成組合語言,生成檔案.s 編譯器egcs 3.有彙編變為目標 機器 生成.o的檔案 彙編器as 4.連線目標 生成可執行程式 鏈結器ld 引數詳解 c 只啟用預處理,編譯,和彙編,也...
gcc 編譯選項
gcc 編譯選項,自己翻譯的.gcc 編譯選項,自己翻譯的.o 設定輸出檔名 c 只編譯,不連線.e 只做預編譯.pipe 在多個編譯過程之間使用管道.version 顯示版本.static 靜態連線.ansi c 模式下支援所有 iso c90 標準的 c 程式,c 模式下去除對 gnu c 擴充...
gcc 編譯選項
wall 大部分警告 wextra 一些額外的警告 werror 當出現警告時轉為錯誤,停止編譯 wconversion 一些可能改變值的隱式轉換,給出警告。wno unused parameter 函式中出現未使用的引數,不給出警告。wold style cast c風格的轉換,給出警告 wove...