问题描述
在task.c中,为了使用在gprs.c中声明的变量,包含头文件#include “gprs.h”,编译出现error。
Error: L6200E: Symbol g_DataPacketID multiply defined (by gprs.o and task.o)
原因
两个.c文件都调用gprs.h的变量,导致gprs.h中的变量被重复定义。
解决
1.在gprs.c中声明变量(结构体/宏);
uint32_t g_DataPacketID = 0;
2.在gprs.h中对其进行外部引用;
extern uint32_t g_DataPacketID;
3.如何确定是哪一个变量出现了问题:
Error: L6200E: Symbol g_DataPacketID multiply defined (by gprs.o and task.o)
加粗的变量g_DataPacketID即是需要修改的变量
4.如何确定文件
Error: L6200E: Symbol g_DataPacketID multiply defined (by gprs.o and task.o)
加粗的即是都调用这个变量的文件

本文详细解析了在使用Keil编译器时遇到的ERROR L6200E问题,即符号g_DataPacketID在多个文件中重复定义。文章提供了具体的解决步骤,包括在源文件中声明变量,在头文件中进行外部引用,以及如何定位和解决此类编译错误。
1495

被折叠的 条评论
为什么被折叠?



