gcc優(yōu)化選項(xiàng) gcc編譯優(yōu)化做了哪些事?
gcc編譯優(yōu)化做了哪些事?基本用法,不打開(kāi)優(yōu)化,生成可執(zhí)行文件Hello:打開(kāi)所有優(yōu)化:有調(diào)試信息,調(diào)試時(shí)可以知道相應(yīng)的代碼位置。調(diào)試時(shí),最好不要開(kāi)始優(yōu)化(或降低優(yōu)化級(jí)別),除非你有特殊的需要:你可以
gcc編譯優(yōu)化做了哪些事?
基本用法,不打開(kāi)優(yōu)化,生成可執(zhí)行文件Hello:
打開(kāi)所有優(yōu)化:有調(diào)試信息,調(diào)試時(shí)可以知道相應(yīng)的代碼位置。調(diào)試時(shí),最好不要開(kāi)始優(yōu)化(或降低優(yōu)化級(jí)別),除非你有特殊的需要:你可以閱讀O”Reilly的C Cookbook,里面講了一些工程方面的東西,比如如何使用GCC、Cl、ICC生成可執(zhí)行文件、靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)。。。
GCC的編譯器優(yōu)化程度如何?
優(yōu)化編譯的參數(shù)是:-o[注,大寫o,來(lái)自英文optimization]-O1[優(yōu)化1,普通優(yōu)化]-O2[優(yōu)化2,高級(jí)優(yōu)化]-O3[優(yōu)化3,最高優(yōu)化]-o0未優(yōu)化
默認(rèn)的編譯器設(shè)置是通過(guò)全局變量設(shè)置:
進(jìn)入命令模式,鍵入命令:VI/etc/profile
在打開(kāi)的文件中,添加:
path=$path:$GCCupath/bin
其中$GCCupath是編譯器的安裝路徑
例如,我的是:
path=$path
/opt/codesource/arm-2008q3/bin
/opt/codesource/arm-2008q3是我的GCC安裝路徑。
然后保存并退出。重新啟動(dòng)后,將有一個(gè)默認(rèn)的編譯器。
GCC的編譯器優(yōu)化程度如何?
ICC針對(duì)英特爾處理器進(jìn)行了優(yōu)化,許多優(yōu)化開(kāi)關(guān)在默認(rèn)情況下處于打開(kāi)狀態(tài)。
GCC是一個(gè)跨平臺(tái)編譯器,包括支持arm體系結(jié)構(gòu)的處理器,因此其某些開(kāi)關(guān)在默認(rèn)情況下處于關(guān)閉狀態(tài)。如果優(yōu)化是完全開(kāi)放的,那么ICC和GCC編譯程序的效率沒(méi)有差別。而且由于優(yōu)化,ICC會(huì)出現(xiàn)很多奇怪的bug。另外,國(guó)際商會(huì)收費(fèi),而免費(fèi)版的國(guó)際商會(huì)有很多限制。