错误 [Pe020]:标识符 "FILE" 在 IAR Workbench 中未定义

Error[Pe020]: identifier "FILE" is undefined in IAR Workbench

// Preprocessor directive mention in <> formate :
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "string.h"
#include "limits.h"
#include "stddef.h"
#include "stdint.h"
...
int main()
{
 FILE *fin, *fout;  //Error[Pe020]: identifier "FILE" is undefined
 ...
 ...
 ...
 fprintf(stderr, "%s\n", opus_get_version_string());              
                         //Error[Pe020]: identifier "stderr" is undefined 

}

根据上面的代码,我得到了两个错误:

1) "Error[Pe020]: identifier "FILE" 未定义"

当我发现 stdlib.h 时,没有任何类型的 "FILE" 指令定义或类型定义。 所以,请告诉我 stdlib.h 或 stdio.h

需要哪些更改

2) 错误[Pe020]:标识符 "stderr" 未定义

那么,stderr在哪个头文件中定义?

请告诉我如何解决上述错误?

提前致谢。

首先,FILEstdio.h 中,而不是在 stdlib.h 中。其次,默认库不包含 FILE 支持,因为此功能使用大量 space 并且在嵌入式系统中很少需要。要使用 FILE,您必须在配置对话框中切换到完整库(如果您使用 IDE)或使用命令行开关 --dlib full(如果您从命令行使用编译器).

请注意,完整库比普通库大得多,因此如果 FILE 的唯一用途是将诊断消息打印到 stderr,我建议您使用其他方式呈现消息。

FILE 在stdio.h 标准头文件中定义。正如 Johan 提到的,IAR IDE 中的默认库配置不包括完整的 Dlib 支持。 我们可以在项目选项下更改为 Full Dlib 支持。 项目选项应使用 ALT + F7 热键或 项目选项卡打开,然后是选项 。检查此图像。 Project Options