我有一个头文件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_GlobalVar
intest2.cpp
或任何BOOL
s in test1.cpp
。