Symbol fputc multiply defined (by serial.o and usart.o).
时间: 2023-06-09 12:04:02 浏览: 152
这个问题通常是因为在不同的源文件中同时定义了同一个符号(即fputc),导致编译器无法确定应该使用哪个定义。你需要检查你的代码,确保只有一个定义 fputc 函数的源文件,并将其它源文件中的重复定义删除或改为声明引用。如果需要在不同的源文件中使用该函数,可以将其定义为静态函数或者在头文件中声明为内联函数。
相关问题
.\Objects\shiyan.axf: Error: L6200E: Symbol fputc multiply defined (by serial.o and usart.o).
这个错误提示是由于在 `serial.o` 和 `usart.o` 两个目标文件中都定义了 `fputc` 符号,导致链接器无法决定使用哪个定义。因此,我们需要解决这个符号重定义错误。
解决方法有以下两种:
1. 将 `fputc` 函数定义从 `serial.c` 和 `usart.c` 文件中删除,只保留一个定义。在其他文件中调用 `fputc` 函数时,编译器将根据函数原型在可用的目标文件中查找符号并进行链接。
2. 将 `fputc` 函数定义声明为 `static`,这将使函数只在定义它的源文件中可见,防止它被其他目标文件使用。
例如:
```c
// serial.c
static int fputc(int ch, FILE *f) {
// your code here
}
// usart.c
static int fputc(int ch, FILE *f) {
// your code here
}
```
这样,每个文件中的 `fputc` 函数都只能在自己的源文件中使用,避免了符号重定义错误。
uart001\uart001.axf: Error: L6200E: Symbol fputc multiply defined (by usart.o and main.o).
这个错误通常在使用 Keil 软件进行编译时出现,表示在链接时出现了符号重定义错误。
个问题通常是由于多个源文件都定义了同名的符号(例如函数或变量)而引起的。在您的情况下,符号 "fputc" 被 usart.o 和 main.o 两个文件同时定义了,导致链接器无法决定使用哪个定义。
要解决这个问题,您可以尝试以下几个方法:
1. 确保您的代码中没有重复定义符号。请搜索所有源文件和头文件,查找是否有重复定义符号的情况。如果找到了重复定义符号的地方,请将其删除或重命名。
2. 如果符号的定义不能删除,请尝试使用 static 关键字将其声明为静态符号。这将使该符号仅在当前源文件中可见,避免与其他文件中的同名符号冲突。
3. 如果您的代码需要使用外部库或外部模块,请确保正确地链接这些库或模块,并根据需要使用 extern 关键字来声明外部符号。
如果以上方法不能解决问题,请提供更多的信息,例如代码片段、Makefile 或 Keil 工程文件等,以便我们更好地帮助您解决问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)