关于重定向printf出错 Error[Pe020]: identifier "FILE" is undefined 解决方案
IAR或者Keil用到重定向printf函数出现的错误解决方案
转发请注明出处,谢谢
原创:李剀
或者
https://blog.csdn.net/Kevin_8_Lee/article/details/88764700
上面第二个是我的在另一个博客平台上的
OK,进入正题
我所使用的是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, , 0xFFFF);
return ch;
}
然后编译
出现的警告及错误如下图所示
identifier "FILE" is undefined

我google了一下 :
很多网友的提供的解决方案几乎一样, 即 在IAR中
Options -> General Options -> Library Configuration
在这里面把Library的选成Full 见下图

还有的说是添加什么宏之类的,我觉得太麻烦了,并没有那样去做。
而且,向上面那样做之后, 还不够,我试了之后还是同样的错误
既然都不可以,那怎么做呢?
请思考一下,printf是哪里的函数?
没错, 是C里面的函数。既然根源清楚了,那我们就可以大胆的尝试一下下面的方法了。
在uart.c文件里面包含一个stdio.h的头文件

然后编译uart.c文件

舒服~~~~~~
2、但是,还没完
当在主函数里面编译的时候出现了以下警告

作为一个追求完美的人,这怎么能行
同理, 在前面包含stdio.h这个头就圆满了

error(s), warning(s)
ok,完美!!! 希望这篇博客对你有所帮助
不被重重的击倒,又怎么能华丽的站起。 加油吧
关于重定向printf出错 Error[Pe020]: identifier "FILE" is undefined 解决方案的更多相关文章
- Error[Pe020]: identifier "FILE" is undefined
Error[Pe020]: identifier "FILE" is undefined 需要添加头文件:#include <stdio.h>
- 【转】关于 Error[Pe020]: identifier "HAL_StatusTypeDef" is undefined
@2019-06-06 [小记] 这个bug比较常见,右键可以定位到相关头文件,但系统依旧报错,其实主要还是头文件的问题. 1.需要检查头文件中关于主程序所用到的部分是否已经使能,尤其是 “stm32 ...
- stm32出现错误“identifier file is undefined”
为什么记录这个问题,说来很简单,这已经是第二次犯这个小错误了. 出现了错误“identifier file is undefined”的解决方法;option->general options- ...
- IAR中的 identifier "FILE" is undefined 问题
最近由于希望使用IAR的printf()函数方便进行打印字符,出现IAR报错,即:identifier "FILE" is undefined,问题得以解决. (1)进行pr ...
- 解决Stm32出现error: #20: identifier "GPIO_InitTypeDef" is undefined异常
该错误是我在移植sd卡程序时出现的,错误如下: error:#20,查看错误,可以发现,这些变量都是系统定义过的,没有修改过.并且该变量也能成功跳转被找到.那么到底是什么原因呢?逛了一些帖子,尝试了好 ...
- 关于STM32工程的错误,狗血错误。。。..\CMSIS\core_cm3.h(1087): error: #20: identifier "IRQn_Type" is undefined
这件事还是要写一篇博客了,为了后来的人不换致命性的错误 辛辛苦苦写的一个四个不同的引脚不同时钟不同寄存器分别产生四种不同占空比不同周期的信号方波程序超级经典 PS:页尾上传PWM波形产生工程附件供大 ...
- visual studio 2010 Error: IntelliSense: identifier "DWORD" is undefined
在自己工程里,添加别的工程文件时,出现改错误 解决方法 在文件前添加: using namespace std; 参考: http://www.programgo.com/article/502412 ...
- stm32 usb error : identifier "bool" is undefined
.\usb\USB\usb_pwr.h(54): error: #20: identifier "bool" is undefinedusb\USB\usb_pwr.h(54): ...
- Spring mvc 中使用ftl引用共通文件出错 FreeMarker template error: Error reading included file "/WEB-INF/ftl/common/errormessage.ftl"
初次接触spring mvc,想做一个小的练习项目,结果在ftl文件中引用其它的共通ftl文件时出错.
随机推荐
- HTML5权威指南 中文版 高清PDF扫描版
HTML5权威指南是一本系统学习网页设计的权威参考图书.<HTML5权威指南>分为五部分:第一部分介绍学习本书的预备知识和HTML.CSS和JavaScript的最新进展:第二部分讨论HT ...
- DataSet取值并保存在List集合中
DBHelper db = new DBHelper(); //实例化DB类 string sql = "select * from student"; //虚构的sql语句 Da ...
- pdo + 事务处理 处理线性事务
/* * 事物处理线性操作. * 以转账为例 */ header('Content-type:text/html;charset=utf-8'); $opt = array(PDO::ATTR_PER ...
- php代码审计7审计csrf漏洞
跨站请求伪造,也有人写出xsrf,黑客伪造用户的http请求,然后将http请求发送给存在csrf的网站,网站执行了伪造的http请求,就引发了跨站请求伪造 漏洞危害:攻击者盗用了你的身份信息,以你的 ...
- hadoop计算二度人脉关系推荐好友
https://www.jianshu.com/p/8707cd015ba1 问题描述: 以下是qq好友关系,进行好友推荐,比如:老王和二狗是好友 , 二狗和春子以及花朵是好友,那么老王和花朵 或者老 ...
- Java FileInputStream与FileReader的区别
在解释Java中FileInputStream和FileReader的具体区别之前,我想讲述一下Java中InputStream和Reader的根本差异,以及分别什么时候使用InputStream和R ...
- 利用百度翻译API批量翻译文本
有时间再做总结! # coding=utf-8 #authority:bing #2017-7-18 import httplib import md5 import urllib import ur ...
- python连接postgreSQL
利用python(我用的是python2.7版本)连接postgresql数据库,这里使用psycopg2这个插件 官网下载psycopg2-2.5.1.tar.gz:http://initd.org ...
- P2045 方格取数加强版 最大费用最大流
$ \color{#0066ff}{ 题目描述 }$ 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现在从(1,1)出发,可以往右或者往下走,最后到达(n,n),每 ...
- EOS 智能合约 plublic key 转换
在做一个EOS 的action接口时,定义如下: void setbplist(const account_name bp_name, const uint64_t bp_time, const ...