【新提醒】Error[Pe020]: identifier “FILE” is undefined 解决方案
IAR或者Keil用到重定向printf函数出现的错误解决方案
转发请注明出处,谢谢
原创:李剀
或者
下面进入正题
1、我所使用的重定向printf函数如下
在uart.c里面添加一下程序
然后编译
出现的警告及错误如下图所示
我google了一下 :
很多网友的提供的解决方案几乎一样, 即 在IAR中
Options -> General Options -> Library Configuration
在这里面把Library的选成Full 见下图
还有的说是添加什么宏之类的,我觉得太麻烦了,并没有那样去做。
而且,向上面那样做之后, 还不够,我试了之后还是同样的错误
请思考一下,printf是哪里的函数?
没错, 是C里面的函数。既然根源清楚了,那我们就可以大胆的尝试一下下面的方法了。
然后编译uart.c文件
舒服~~~~~~
2、但是,还没完
当在主函数里面编译的时候出现了以下警告
同理, 在前面包含stdio.h这个头就完美了
转发请注明出处,谢谢
原创:李剀
- https://www.cnblogs.com/kevin-nancy/articles/10585199.html
或者
- https://blog.csdn.net/Kevin_8_Lee/article/details/88764700
下面进入正题
我所使用的是STM32F407开发板,在IAR下写程序,Keil遇到这个问题也可以这么解决
1、我所使用的重定向printf函数如下
在uart.c里面添加一下程序
- #ifdef __GNUC__
- #define PUTCHAR_PROTOTYPE int _io_putchar(int ch)
- #else
- #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
- #endif /* __GNUC__*/
- /******************************************************************
- *@brief Retargets the C library printf function to the USART.
- *@param None
- *@retval None
- ******************************************************************/
- PUTCHAR_PROTOTYPE
- {
- HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
- return ch;
- }
然后编译
出现的警告及错误如下图所示
我google了一下 :
很多网友的提供的解决方案几乎一样, 即 在IAR中
Options -> General Options -> Library Configuration
在这里面把Library的选成Full 见下图
还有的说是添加什么宏之类的,我觉得太麻烦了,并没有那样去做。
而且,向上面那样做之后, 还不够,我试了之后还是同样的错误
既然都不可以,那怎么做呢?
请思考一下,printf是哪里的函数?
没错, 是C里面的函数。既然根源清楚了,那我们就可以大胆的尝试一下下面的方法了。
在uart.c文件里面包含一个stdio.h的头文件
然后编译uart.c文件
舒服~~~~~~
2、但是,还没完
当在主函数里面编译的时候出现了以下警告
作为一个追求完美的人,这怎么能行
同理, 在前面包含stdio.h这个头就完美了
- 0 error(s),0 warning(s)
- 不被重重的击倒,又怎么能华丽的站起。 加油吧
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 【新提醒】Error[Pe020]: identifier “FILE” is undefined 解决方案
白度搜_经验知识百科全书 » 【新提醒】Error[Pe020]: identifier “FILE” is undefined 解决方案
0条评论