屏幕快照 2017-02-26 14.39.59.png
做漫畫離線閱讀功能忠蝗,打的Release包離線下來的圖片讀不出來逛绵,Debug包可以墙歪。
解決方案是打Release包的時候把Optimization Level改成None,Debug模式默認(rèn)就是None所以才沒問題舍悯。
這個編譯策略呢航棱,就是編譯器的優(yōu)化程度。早期因為硬件資源不夠強大萌衬,編譯器在編譯過程中會對代碼進(jìn)行優(yōu)化饮醇,提高代碼的效率。不過這個優(yōu)化過程奄薇,因為比較靠近硬件一層驳阎,所以可能導(dǎo)致一些不兼容的問題。
很多Release包有問題而Debug包沒問題馁蒂,就是因為Release默認(rèn)的是Fastest,Smallest而Debug默認(rèn)是None
這里有關(guān)于Optimization Levels的官方介紹
以下是這幾個級別的中文翻譯:
- `-O0'
代碼沒有優(yōu)化呵晚,編譯時間最快 - `-O1'
適度優(yōu)化,沒有顯著的降低編譯時間 - `-O2'
全面優(yōu)化沫屡,生成高度優(yōu)化的代碼饵隙,編譯時間最慢 -
-O3' 和
-O2'一樣的全面優(yōu)化。同時在一個unit里使用更積極的自動內(nèi)連子程序且嘗試進(jìn)行循環(huán) - `-Os'
優(yōu)化程序的空間使用沮脖,包括代碼和數(shù)據(jù)