windows — ошибка связи c ++, не удается найти структуру global.h

Я определил структуру в заголовочном файле 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 структура, но я не могу понять почему.

0

Решение

это

extern GLOBAL_VAR g_GlobalVar;

это только декларация. Переменная еще не определенный:

GLOBAL_VAR g_GlobalVar;

Вам нужна предыдущая строка в одном файле реализации.

Кроме того, поскольку это C ++, вам не нужен тег для структуры, вы можете просто написать

struct GLOBAL_VAR
{
int nKGStationID;
int nKGComPort;
};
4

Другие решения

Других решений пока нет …