2017-08-06 446 views
1

我在調試模式下構建我的應用程序,並且我注意到一些錯誤,指出「父級未能評估:沒有位置,值可能已被優化」 。因此,我嘗試在我的模塊的build.gradle添加「-O0」是這樣的:在cppFlags中添加「-O0」無法禁用android studio中的clang編譯優化

externalNativeBuild { 
    cmake { 
     cppFlags "-O0 -frtti -fexceptions -std=c++11 -DANDROID_ARM_NEON=TRUE -mfloat-abi=softfp " 
     abiFilters "armeabi-v7a" 
    } 
} 

但儘管如此,同樣的錯誤添加「-O0」後顯示出來。請問如何正確禁用編譯器優化?我的android Studio版本是2.3.3,我的sdk工具版本是26.0.2,我的ndk版本是15.1.4

+0

您可能會發現檢查實際編譯命令的外觀如何,請參閱https://stackoverflow.com/a/43442227/192373。 –

回答

0

如果您想禁用發佈版本的優化,只能強制爲C/C++調試:

android { 
    defaultConfig { 
    externalNativeBuild { 
     cmake { 
     arguments '-DCMAKE_BUILD_TYPE:STRING=Debug' 
+0

感謝您的及時回覆!請問如何禁用調試版本的優化? – Edmosphere

+0

對我來說,debug build帶有'-O0'。這在'ndk-bundle/build/cmake/android.toolchain.cmake'中明確定義 –