Symbol time multiply defined (by my_usart.o and timer.o).
时间: 2023-06-15 22:06:39 浏览: 101
多个 timer 使用示例
这个错误通常发生在使用多个源文件编写程序时,其中两个源文件都定义了同名的符号,例如在你的情况下,`my_usart.o` 和 `timer.o` 都定义了名为 `Symbol time` 的符号。
解决这个问题的方法是在其中一个源文件中将符号定义为 `extern`,这将告诉编译器该符号在另一个源文件中已经被定义。
例如,在 `timer.c` 文件中,将 `Symbol time` 定义为 `extern`,如下所示:
```
extern int Symbol_time;
```
然后在 `my_usart.c` 文件中,使用该符号而不是定义它,例如:
```
int x = Symbol_time + 1;
```
这将确保编译器将使用 `timer.c` 中定义的 `Symbol time` 符号,而不是在 `my_usart.c` 中重新定义它。
阅读全文