Error[Pe235]: variable "_stdout" was declared with a never-completed type C:\Users\32061\Desktop\freertos\cs\Core\Src\usart.c 121
时间: 2023-11-29 11:47:18 浏览: 100
这个错误通常是由于在变量声明时未指定变量类型而导致的。在C语言中,变量必须在声明时指定类型。如果未指定类型,则编译器无法确定变量的大小和内存布局,从而导致编译错误。
解决此错误的方法是在变量声明时指定变量类型。例如,在usart.c文件的第121行,变量"_stdout"应该被声明为指向FILE结构体的指针类型,如下所示:
```c
FILE *_stdout;
```
如果您已经指定了变量类型,那么请检查您的代码是否存在其他语法错误或拼写错误。此外,还可以尝试重新编译代码并查看是否仍然存在相同的错误。
相关问题
D:\MDK5\ARM\ARMCC\Bin\..\include\stdio.h(138): error: #235: variable "__stdout" was declared with a never-completed type
这个错误是由于标准库中的 `stdio.h` 头文件中的 `__stdout` 变量声明出现问题导致的。错误提示表明 `__` 的类型没有完全定义。
要解决这个问题,你可以尝试以下几个步骤:
1. 确保你使用的是正确版本的编译器和标准库。有时候,错误可能是由于编译器或标准库版本不兼容造成的。确保你使用的是适用于你的编译器版本的正确标准库。
2. 检查你的代码中是否有自定义的 `__stdout` 变量或重定义了标准库中的 `stdout` 变量。如果是这样的话,你需要确保你的自定义变量或重定义正确。
3. 如果你没有自定义或重定义 `__stdout`,那么可能是由于编译器配置问题导致的。尝试重新配置编译器,并确保编译器能够正确地找到标准库的头文件和定义。
如果以上方法都无法解决问题,你可以尝试在网上搜索相关错误消息以获取更多关于该错误的信息,或者向相关开发社区寻求帮助。
Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and usart.o).
这是一个链接错误,它表明在链接过程中发现了多个定义相同的符号__stdout,分别来自stdio_streams.o和usart.o两个目标文件。这种情况通常是由于在多个源文件中重复定义了同一个全局变量或函数导致的。
要解决这个错误,你需要检查代码中是否存在重复定义的全局变量或函数,然后将它们合并或删除其中的一个定义。你可以使用命令行选项-Wl,--print-map来输出链接器的符号映射表,以帮助你找出重复定义的符号。另外,你还需要检查你的编译选项和链接选项是否正确设置,例如是否包含了正确的库文件等。