.\debug\flexspi_nor_debug\GE2406T.out: Error: L6200E: Symbol LPUART1_DriverIRQHandler multiply defined (by fsl_lpuart_1.o and fsl_lpuart.o).
时间: 2024-02-12 13:07:13 浏览: 173
这个错误通常是由于同一个符号被多次定义引起的。在你的情况下,符号 LPUART1_DriverIRQHandler 被 fsl_lpuart_1.o 和 fsl_lpuart.o 两个目标文件重复定义了。
为了解决这个问题,你可以在编译命令中加上参数 --whole-archive,将所有的目标文件都链接进去,这样可以确保所有的符号都被正确定义。例如:
```
gcc -Wl,--whole-archive fsl_lpuart_1.o fsl_lpuart.o -Wl,--no-whole-archive -o output.elf
```
另外,你还可以使用 --exclude-symbols 参数来排除重复定义的符号。例如:
```
gcc fsl_lpuart_1.o fsl_lpuart.o -Wl,--exclude-symbols=LPUART1_DriverIRQHandler -o output.elf
```
这样可以排除掉重复定义的符号,从而解决错误。
相关问题
..\OBJ\05_class_one.axf: Error: L6200E: Symbol kp multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol ki multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol kd multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol last_error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol add_error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol dy_error multiply defined (by pid.o and main.o). ..\OBJ\05_class_one.axf: Error: L6200E: Symbol pid_out multiply defined (by pid.o and main.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map.
这些错误是由于在 'pid.o' 和 'main.o' 文件中同时定义了 'kp'、'ki'、'kd'、'error'、'last_error'、'add_error'、'dy_error' 和 'pid_out' 这些符号导致的。这种重复定义会导致链接时的冲突。要解决这个问题,你需要确保这些符号只在一个文件中定义。你可以检查一下这些文件,看看是否有重复定义的地方,并将其中一处定义删除或修改。
阅读全文