我有一个头文件global.h,我在其中声明了一些我打算在其他文件中使用的变量。
#ifndef GLOBAL_H_
#define GLOBAL_H_
#include <stdio.h>
typedef struct tag_KG_Data
{
int nKGStationID;
int nKGComPort;
}GLOBAL_VAR;
GLOBAL_VAR g_GlobalVar;
BOOL b_newDataReady;
BOOL b_startedSocketClient;
#endif
起初我只GLOBAL_VAR g_GlobalVar在文件test1.cpp中声明extern GLOBAL_VAR g_GlobalVar;,并且工作得很好。然后我声明了 2BOOL并在其中使用了它们test2.cpp,但是我得到了一个error LNK2005: "struct tag_KG_Data g_GlobalVar" (?g_GlobalVar@@3Utag_KG_Data@@A) already defined in test1.obj并且对于我拥有的每个全局变量,我都会得到一个类似的错误。问题是我不使用GLOBAL_VAR g_GlobalVarintest2.cpp或任何BOOLs in test1.cpp。