只要加载aJson.h就不能完成编译

作者:whyygug | 更新时间:2017-10-21 | 浏览量:2074

D:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:90:18: error:   overriding 'virtual void Print::flush()'
     virtual void flush() { /* Empty implementation for backward compatibility */ }
                  ^
exit status 1
为开发板 Arduino/Genuino Mega or Mega 2560 编译时出错。
 
这是什么原因

评论:共11条

贝壳物联 评论于:2017-10-21 05:19:32
使用1.6.5-1.8.2的arduino IDE试试
lr1991 评论于:2017-11-06 19:27:17
最好是1.8.2
whyygug 评论于:2017-11-09 17:48:23
找到原因了,要把ajson里的flush函数改成其他名字就行
whyygug 评论于:2017-11-09 17:48:41
.h和.cpp里的都要改
whyygug 评论于:2017-11-09 17:49:01
但是要改成同样的名字
xukaiyuha 回复于:2018-04-26 19:29:37
回复 @whyygug:改成同样的名字是什么操作?
tomoya06 评论于:2017-12-14 23:02:00
感谢楼上,还好论坛有人哈哈
candura 评论于:2018-01-30 15:08:55
哈哈,我今天也遇到这个问题了,后来去到 aJson 库的GITHUB上发现也有人在ISSUE反馈这个问题,不过作者还没有答复。
我的临时解决方案是把 aJSON.h 和 aJSON.cpp 里面的 int flush(); 都替换成 int aJsonStreamflush(); 来避免冲突。
目前使用均无任何问题,就是不知道以后会不会遇到什么不可知问题。
CRJ 回复于:2021-01-12 21:01:00
回复 @candura:使用您的方法已解决 感谢!!!!
Sherk_ 评论于:2018-05-07 23:21:52
我直接把.h和.cpp文件内的flush注释掉了,也没什么影响
hc_羽 评论于:2018-12-04 14:20:17
我来说说我的解决办法,打开库里aJSON.h将第92行int flush()改为int flush2(),打开aJSON.cpp将514行的aJsonStream::flush()改为aJsonStream::flush2(),总之冲突就在flush名字上。应该是和底层avr的core里的一个函数冲突了,所以为什么之前的IDE可用而后面的IDE不可用了吧。
返回顶部