Stm32F0Project\Stm32F0Project.axf: Error: L6200E: Symbol gImage_logo_1 multiply defined (by dht11.o and lcd.o). Stm32F0Project\Stm32F0Project.axf: Error: L6200E: Symbol sysmbol multiply defined (by dht11.o and lcd.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 2 error messages. "Stm32F0Project\Stm32F0Project.axf" - 2 Error(s), 0 Warning(s).
时间: 2024-03-11 07:50:28 浏览: 214
Error: L6218E: Undefined symbol delay-init (referred from main.o
这是一个符号重定义错误。根据错误提示,符号 `gImage_logo_1` 和 `sysmbol` 在 `dht11.o` 和 `lcd.o` 文件中都定义了,因此编译器无法决定使用哪个定义。这种情况下,你需要检查一下代码中是否存在重复定义的符号,如果有,需要将其移动到单独的源文件中,并在需要使用该符号的文件中使用 extern 关键字声明该符号。例如,在 `dht11.c` 和 `lcd.c` 文件中都定义了 `gImage_logo_1` 符号,你可以将其定义在一个单独的源文件中,例如 `images.c`,并在 `dht11.c` 和 `lcd.c` 中使用 extern 声明该符号:
```C
// images.c
const uint8_t gImage_logo_1[] = { /* 图像数据 */ };
// dht11.c 和 lcd.c
extern const uint8_t gImage_logo_1[];
```
这样就可以避免符号重定义错误。
阅读全文