c ++链接错误,找不到global.h结构

时间:2012-09-04 11:39:11

标签: c++ windows header struct

我在头文件global.h中定义了一个结构,我尝试在另一个类中使用它,但是我收到了这个错误:Error 6 error LNK2001: unresolved external symbol "struct tag_KG_Data g_GlobalVar" (?g_GlobalVar@@3Utag_KG_Data@@A) KGComThread.obj

#ifndef GLOBAL_H_
#define GLOBAL_H_

#include <stdio.h>

typedef struct tag_KG_Data
{
      int nKGStationID;
      int nKGComPort;

}GLOBAL_VAR;

#endif

并在KGComThread.cpp文件中我使用它:

#include "global.h"

extern GLOBAL_VAR g_GlobalVar;

我认为编译器无法找到global.h文件,因此它定义了一个无意义的tag_KG_Data结构,但我无法理解为什么。

1 个答案:

答案 0 :(得分:4)

extern GLOBAL_VAR g_GlobalVar;

只是声明。该变量尚未定义

GLOBAL_VAR g_GlobalVar;

您需要在单个实施文件中使用上一行。

此外,由于这是C ++,您不需要结构的标记,您只需编写

即可
struct GLOBAL_VAR
{
      int nKGStationID;
      int nKGComPort;
};