0

我在头文件中定义了一个结构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结构,但我不明白为什么。

4

1 回答 1

4

这个

extern GLOBAL_VAR g_GlobalVar;

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

GLOBAL_VAR g_GlobalVar;

您需要单个实现文件中的前一行。

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

struct GLOBAL_VAR
{
      int nKGStationID;
      int nKGComPort;
};
于 2012-09-04T11:40:21.773 回答