Android Studio cmake突然沒有語法高亮


NDK開發中,build.gradle中臨時添加了-fnoexception編譯選項:

        externalNativeBuild {
            cmake {
                cppFlags '-std=c++11 -fexceptions'   //!!!這里是新增的
                arguments '-DANDROID_PLATFORM=android-21',
                    '-DCMAKE_BUILD_TYPE="Release',
                    '-DANDROID_ARM_NEON=ON',
                    '-DANDROID_STL=c++_shared'
//                cppFlags '-std=c++11'
//                arguments '-DANDROID_TOOLCHAIN=clang',
//                        '-DANDROID_STL=c++_static'
//                cppFlags "-std=c++11 -fexceptions"
            }
        }

結果,點擊sync now之后,CMake腳本都失去了高亮,並且報錯提示clang++沒法識別-fnoexception。檢查發現,是CMake腳本中設定了CMAKE_CXX_FLAGS的值里面有-fno-exceptions導致的,去掉即可:

#SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions -fno-short-enums -Werror=non-virtual-dtor")
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-short-enums -Werror=non-virtual-dtor")

也就是說,是build.gradle腳本和cmake的腳本中的C++編譯選項,對於是否啟用exception有沖突導致的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM