Arduino 例程编译错误 error: unknown type name uint_farptr_t did you mean uint_fast8_t

Arduino 例程编译错误

问题描述

error: unknown type name 'uint_farptr_t'; did you mean 'uint_fast8_t'?

中午午觉醒来本来打算试试arduino,第一次打开arduino,想试试手,做个led小灯

但是,发现报错,哪怕新创建文件,自己带的例程都会报错…

avatar

Arduino:1.8.10 (Windows 10), 开发板:"Arduino/Genuino Uno"

In file included from D:\code_tool\arduino_ide\Arduino\hardware\arduino\avr\cores\arduino\WInterrupts.c:30:0:

d:\code_tool\arduino_ide\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1529:25: error: unknown type name 'uint_farptr_t'; did you mean 'uint_fast8_t'?

 extern size_t strlen_PF(uint_farptr_t src) __ATTR_CONST__; /* program memory can't change */

                         ^~~~~~~~~~~~~

                         uint_fast8_t

d:\code_tool\arduino_ide\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:1545:26: error: unknown type name 'uint_farptr_t'; did you mean 'uint_fast8_t'?

 extern size_t strnlen_PF(uint_farptr_t src, size_t len) __ATTR_CONST__; /* program memory can't change */

                          ^~~~~~~~~~~~~

                          uint_fast8_t

    ...此处省略无数行类似报错

exit status 1
为开发板 Arduino/Genuino Uno 编译时出错。

在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。

去arduino中文社区找了半天,也没找到啥合适的解决方法,有让换IDE的,

结果1.8.10,1.8.9,1.8.8,1.8.5四个版本试了都没有用,网上一堆帖子都是待解决…

于是乎陷入沉默…然后下午上完马原继续查找问题

问题解决

问题都出在uint_farptr_t 变量上,当时在pgmspace.h文件里找到了这个变量,但是不知道怎么解决

最后不知道在哪篇帖子里面,搜到了一个链接,写个博客防止自己忘了,不知道为啥16年贴出来的解决方法,网上还是一堆未解决…

链接

原因是:

uint_farptr_t变量在inttypes.h中定义了。

但是编译器不知道为什么找不到inttypes.h文件,于是导致了以上问题

解决方法

返回pgmspace.h的上级目录,也就是

\arduino\hardware\tools\avr\avr\include\文件夹下找到inttypes.h文件

将文件复制到pgmspace.h目录下,也就是

\arduino\hardware\tools\avr\avr\include\avr\文件夹下

打开文件pgmspace.h

使用ctrl+F查找inttypes.h(PS:其实就在前几行)

并且将#include<inttypes.h>改为#include<avr/inttypes.h>,再编译就可以解决了。

avatar

这样问题就解决了

猜你喜欢

转载自blog.csdn.net/InkBamboo920/article/details/102571243