..\OBJ\VirtualCOMPort.axf: Error: L6200E: Symbol DAC_OutVoltage multiply defined (by dac.o and main.o).
时间: 2023-10-22 21:28:49 浏览: 143
这错误的出现是因为在dac.o和main.o两个目标文件中都定义了名为DAC_OutVoltage的符号(Symbol)。这导致链接器无法决定使用哪个定义,从而报出了“multiply defined”(多次定义)的错误。
解决这个问题的方法是在定义DAC_OutVoltage的时候,将其声明为static,这样就只在当前文件中可见,避免了与其他文件中同名符号的冲突。如果需要在其他文件中使用DAC_OutVoltage,则可以通过将其声明为extern来实现。
相关问题
..\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' 这些符号导致的。这种重复定义会导致链接时的冲突。要解决这个问题,你需要确保这些符号只在一个文件中定义。你可以检查一下这些文件,看看是否有重复定义的地方,并将其中一处定义删除或修改。
..\OBJ\Template.axf: Error: L6200E: Symbol __ARM_use_no_argv multiply defined (by chassis.o and main.o).
这个错误是由于在两个不同的源文件中都定义了同一个符号(Symbol)所导致的。在这个例子中,符号是__ARM_use_no_argv。这个符号可能是由于在两个不同的源文件中都包含了同一个头文件而导致的。解决这个问题的方法是将变量定义在一个源文件中,并在其他源文件中使用extern关键字来声明这个变量。这样就可以避免重复定义同一个符号的问题。
阅读全文