• 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有冲突导致的。

  • 相关阅读:
    UIViewcontroller生命周期方法
    runtime中的宏定义解释表
    opencv在Mac环境下的安装和配置
    Oracle导入导出
    Oracle触发器详解
    查找表的父表和子表
    Oracle创建表空间
    TRIGGER控制级联更新
    启动Oracle的bat文件
    PL(SQL)块
  • 原文地址:https://www.cnblogs.com/zjutzz/p/12159112.html
Copyright © 2020-2023  润新知