错误 [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在哪个头文件中定义?
请告诉我如何解决上述错误?
提前致谢。
首先,FILE
在 stdio.h
中,而不是在 stdlib.h
中。其次,默认库不包含 FILE
支持,因为此功能使用大量 space 并且在嵌入式系统中很少需要。要使用 FILE
,您必须在配置对话框中切换到完整库(如果您使用 IDE)或使用命令行开关 --dlib full
(如果您从命令行使用编译器).
请注意,完整库比普通库大得多,因此如果 FILE
的唯一用途是将诊断消息打印到 stderr
,我建议您使用其他方式呈现消息。
FILE 在stdio.h 标准头文件中定义。正如 Johan 提到的,IAR IDE 中的默认库配置不包括完整的 Dlib 支持。
我们可以在项目选项下更改为 Full Dlib 支持。
项目选项应使用 ALT + F7 热键或 项目选项卡打开,然后是选项 。检查此图像。
Project Options
// 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在哪个头文件中定义?
请告诉我如何解决上述错误?
提前致谢。
首先,FILE
在 stdio.h
中,而不是在 stdlib.h
中。其次,默认库不包含 FILE
支持,因为此功能使用大量 space 并且在嵌入式系统中很少需要。要使用 FILE
,您必须在配置对话框中切换到完整库(如果您使用 IDE)或使用命令行开关 --dlib full
(如果您从命令行使用编译器).
请注意,完整库比普通库大得多,因此如果 FILE
的唯一用途是将诊断消息打印到 stderr
,我建议您使用其他方式呈现消息。
FILE 在stdio.h 标准头文件中定义。正如 Johan 提到的,IAR IDE 中的默认库配置不包括完整的 Dlib 支持。 我们可以在项目选项下更改为 Full Dlib 支持。 项目选项应使用 ALT + F7 热键或 项目选项卡打开,然后是选项 。检查此图像。 Project Options