Я определил структуру в заголовочном файле 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
структура, но я не могу понять почему.
это
extern GLOBAL_VAR g_GlobalVar;
это только декларация. Переменная еще не определенный:
GLOBAL_VAR g_GlobalVar;
Вам нужна предыдущая строка в одном файле реализации.
Кроме того, поскольку это C ++, вам не нужен тег для структуры, вы можете просто написать
struct GLOBAL_VAR
{
int nKGStationID;
int nKGComPort;
};
Других решений пока нет …