cannot use ‘throw’ with exceptions disabled

在为 DragonBonesCPP/refactoring 的 cocos2d-x-3.2 demo 增加 Android 编译时,NDK 报了一个编译错误:

error: cannot use ‘throw’ with exceptions disabled
throw std::invalid_argument(“Invalid data.”);

这是由于 DragonBonesCPP 库使用了 C++ 标准异常,而 Android NDK 编译器默认不支持 C++ 异常控制导致。

但是,从Android NDK r5 版本开始,NDK 就开始支持 C++ 异常控制了,我的版本是 r9d ,为什么还会出现这个错误呢?

原来,NDK 编译器的 C++ 异常控制特性支持默认是关闭的。要打开它,可以这样做:

编辑 Android.mk 文件,加入下面的代码:

LOCAL_CPP_FEATURES += exceptions

或者:

LOCAL_CPPFLAGS += -fexceptions

这样可以对当前项目开启 C++ 异常控制编译支持。

如果想偷懒,也可以编辑 Application.mk 文件,加入下面的代码:

APP_CPPFLAGS += -fexceptions

这样,所有模块的 C++ 异常控制编译支持都会被打开。

上面的两个 mk 文件位于 proj.android/jni 文件夹中。

转自 http://zengrong.net/post/2168.htm/comment-page-1

最新文章

  1. WPF数据编辑的提交与撤销
  2. [转]div与span区别及用法
  3. Linux_Shell
  4. 拿到添加对象的id号方法
  5. C#实现判断字符是否为中文
  6. [充电][ios]ios充电接口
  7. Intellij IDEA 快速创建Spring Web 项目
  8. RPC框架motan: 通信框架netty( 1)
  9. oc语言学习之基础知识点介绍(二):类和对象的进一步介绍
  10. C++的MFC,与C#的.NET
  11. [置顶] 吃论扯谈---吃货和Office 365订阅的关系
  12. 关于xmlHttp.status最新统计
  13. UIAlertControl的使用对比与UIAlertView和UIActionSheet
  14. Windows四大傻X功能——那些拖慢系统性能的罪魁祸首
  15. Hadoop安装错误总结
  16. Luogu P4727-- 【HNOI2009】图的同构记数
  17. RunAsDate v1.36 突破软件试用30天的工具
  18. 安装mysql中遇到的问题1
  19. 20155235 2016-2017-2 《Java程序设计》第5周学习总结
  20. JS随机数种子

热门文章

  1. subprocess模块windows系统命令和linux系统命令
  2. windows下升级pip失败,重新安装pip最新版本
  3. DFS:POJ1562-Oil Deposits(求连通块个数)
  4. 封装微信分享到朋友/朋友圈js
  5. Hive 启动报错,需先启动元数据
  6. mysql远程访问另一台主机数据库表,实现小表广播功能
  7. Java-替换字符串中的子字符串
  8. 大数据学习——Kafka集群部署
  9. Dell Omsa在Linux服务器上安装部署
  10. Method for Estimating the Number of Concurrent Users