.\Objects\shiyan.axf: Error: L6200E: Symbol fputc multiply defined (by serial.o and usart.o).
时间: 2023-10-22 10:16:27 浏览: 313
shiyan.zip_site:www.pudn.com
这个错误提示是由于在 `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` 函数都只能在自己的源文件中使用,避免了符号重定义错误。
阅读全文