Скачал и установил Qt, создал проект консольного приложения Qt в Visual Studio. Написал свой класс с 1 сигналом. Всё запускается нормально, но стоит создать объект класса, то вылетает ошибка:
1>main.obj : error LNK2001: неразрешенный внешний символ "public: virtual struct QMetaObject const * __cdecl MyClass1::metaObject(void)const " (?metaObject@MyClass1@@UEBAPEBUQMetaObject@@XZ).
1>main.obj : error LNK2001: неразрешенный внешний символ "public: virtual void * __cdecl MyClass1::qt_metacast(char const *)" (?qt_metacast@MyClass1@@UEAAPEAXPEBD@Z).
1>main.obj : error LNK2001: неразрешенный внешний символ "public: virtual int __cdecl MyClass1::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyClass1@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z).
1>C:\Users\Max\source\repos\QtConsoleApplication1\x64\Debug\QtConsoleApplication1.exe : fatal error LNK1120: неразрешенных внешних элементов: 3
Вот код:
#include <QtCore>
class MyClass1 : public QObject {
Q_OBJECT
public:
MyClass1() : QObject(), inf("Inf from the class MyClass1") {}
void sendSignal() {
emit Test(inf);
}
private:
QString inf;
signals:
void Test(const QString&);
};
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
MyClass1 obj1;
return a.exec();
}