Я пытаюсь реализовать простое серверное клиентское приложение на QT. Я использую Visual Studio 2017. Вот заголовочный файл моего клиентского класса.
#pragma once
#ifndef Client_H
#define Client_H
#include <QTcpSocket>
class Client : public QObject
{ Q_OBJECT
public:
explicit Client (QObject *parent = 0);
void Connect();
signals:
public slots:
private:
QTcpSocket *socket;
};
#endif
, а вот код для Client. cpp
#include "Client.h"
Client::Client(QObject *parent) :
QObject(parent)
{
}
void Client::Connect()
{
socket = new QTcpSocket(this);
socket->connectToHost("192.168.10.10", 8016);
if (socket->waitForConnected(3000))
{
printf("COnnected");
}
else
{
printf("Not Connected");
}
}
, как вы можете видеть. довольно просто. В моем Main. cpp я создаю экземпляр клиентского класса, а затем вызываю функцию Connect ():
Client Test;
Test.Connect();
При создании моего проекта я получаю следующие ошибки:
1>Client.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __cdecl Client::metaObject(void)const " (?metaObject@Client@@UEBAPEBUQMetaObject@@XZ)
1>Client.obj : error LNK2001: unresolved external symbol "public: virtual void * __cdecl Client::qt_metacast(char const *)" (?qt_metacast@Client@@UEAAPEAXPEBD@Z)
1>Client.obj : error LNK2001: unresolved external symbol "public: virtual int __cdecl Client::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Client@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
Я знаю, что эта ошибка означает, что функции объявлены, но определение отсутствует. Я просто не знаю, где найти эти определения и какой файл мне нужно связать, чтобы избавиться от этих ошибок.
Спасибо