您的位置:首页 > Web前端

FORTIFY_SOURCE: memset: prevented write past end of buffer. Calling abort(). Aborted 问题解决方法

2016-12-28 18:25 1956 查看
今天写了一个串口操作程序需要在android开发板上运行测试, 运行的时候报了这个错:

FORTIFY_SOURCE: memset: prevented write past end of buffer. Calling abort().
Aborted

由于之前没有遇到过这种问题, 一下就蒙蔽了, 这是啥???

经过查找资料, FORTIFY_SOURCE 是RedHat的几位软件工程师设计的 gcc 为内存和字符串函数提供一种轻量级的缓冲区溢出保护机制, _FORTIFY_SOURCE 是gcc的一个编译选项。 就说这么多吧, 想深入了解就google。

解决方法:

在你自己项目的Andriod.mk 里面为gcc添加一个编译选项: LOCAL_CFLAGS += -D_FORTIFY_SOURCE=0,就可以了。

也有可能会报 FORTIFY_SOURCE 重复定义的问题, 原因是已经有别的Android.mk 定义这个编译选项了。

解决方法是:LOCAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 这样就ok了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐