..\OBJ\KEY.axf: Error: L6200E: Symbol delay_ms multiply defined (by delay.o and main.o).
时间: 2024-06-02 22:12:41 浏览: 22
这个错误提示表明在链接 `KEY.axf` 文件时,`delay_ms` 符号被 `delay.o` 和 `main.o` 两个目标文件都定义了一次,导致符号重定义错误。
解决这个问题的方法有两种:
1. 将函数定义改为 `static inline` 或 `static`,这样编译器就能够在编译时将函数的定义内联到调用处,而不是在链接时将其作为独立的目标文件。
2. 将函数定义放到单独的源文件中,只在需要使用该函数的源文件中包含该函数的头文件。这样每个目标文件只会包含一次函数定义,避免了符号重定义错误。
相关问题
..\OBJ\TPAD.axf: Error: L6200E: Symbol ctrl_comm_last multiply defined (by gary.o and main.o).
这个错误提示是因为在多个源文件中同时定义了符号"ctrl_comm_last",导致链接器无法确定该符号的实际地址。通常解决方法有以下几种:
1. 检查代码中是否存在重复定义符号的情况,如果有则需要将其删除或合并。
2. 如果符号的定义是必需的,可以考虑将其声明为extern,以保证在链接时只有一个定义。
3. 在编译或链接时使用命令行选项--no-keep-locals,以忽略所有本地符号的重复定义。
你可以尝试以上方法解决该错误。如果仍然无法解决,请提供更多相关的代码和信息,我可以帮助你更好地解决问题。
..\OBJ\Template.axf: Error: L6200E: Symbol __ARM_use_no_argv multiply defined (by chassis.o and main.o).
这个错误是由于在两个不同的源文件中都定义了同一个符号(Symbol)所导致的。在这个例子中,符号是__ARM_use_no_argv。这个符号可能是由于在两个不同的源文件中都包含了同一个头文件而导致的。解决这个问题的方法是将变量定义在一个源文件中,并在其他源文件中使用extern关键字来声明这个变量。这样就可以避免重复定义同一个符号的问题。