0
我正在eclipse中使用autotools構建運行OpenWRT的嵌入式系統的程序。我已經設置了所有的調試工作。如果我將編譯好的可執行文件發送給某人,它的效率會高於未編譯爲用於調試的效率嗎?gcc添加了哪些調試信息?
我正在eclipse中使用autotools構建運行OpenWRT的嵌入式系統的程序。我已經設置了所有的調試工作。如果我將編譯好的可執行文件發送給某人,它的效率會高於未編譯爲用於調試的效率嗎?gcc添加了哪些調試信息?
生成的可執行文件(對於相同的給定源代碼)的效率取決於編譯器和優化標誌。
如果編譯只gcc -g
和沒有任何優化參數你的代碼,它是當你與優化參數(例如gcc -O2
)編譯比慢得多。
如果需要,您可以混合使用-O2
和-g
。添加-g
不會降低可執行文件的速度(但會添加一些調試信息)。 gdb
調試器在調試可執行文件時可能會顯示一些奇怪的行爲(因爲優化是內聯,重新排序指令等)。最近的GCC(即4.8)甚至增加了一個-Og
選項(優化用於調試),即用gcc -Og -g
進行編譯。
好點。這不會是最佳的,因爲我將優化關閉進行調試。謝謝。 – adrianwadey