I'm trying to create objects by using another c++ solution's files.
When I create a MyClass1
object program gives error of:
1>main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall MyClass1::~MyClass1(void)" (??1MyClass1@@UAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall MyClass1::MyClass1(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0MyClass1@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z) referenced in function _main
When I create a MyClass2
object program creates the object. No error.
What should I do to create the MyClass1
object properly?
I cut all unnecessary parts in relevant source. The code is as follows.
tester file main.cpp
#include "tester.h"
#include <QtGui/QApplication>
#include "myclasses.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
tester w;
w.show();
MyClass1 aa;
MyClass2 bbb;
return a.exec();
}
myclasses.h file
#ifndef MYCLASSES_H
#define MYCLASSES_H
#include <QtGui/QMainWindow>
#include "ui_myclasses.h"
class MyClass1 : public QMainWindow
{
Q_OBJECT
public:
MyClass1(QWidget *parent = 0, Qt::WFlags flags = 0);
~MyClass1();
void setthemall(int number);
private:
Ui::MyClass1Class ui;
int totalnumber;
};
class MyClass2
{
int param1;
void getit ();
};
#endif
myclasses.cpp file
#include "myclasses.h"
MyClass1::MyClass1(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
}
MyClass1::~MyClass1()
{
}
void MyClass1::setthemall(int pnumber)
{
totalnumber=pnumber;
}
void MyClass2::getit() {
};
It seems like the myclasses.o file is missing. Are you sure you're compiling and linking myclasses.o?
Since this is Qt, have you run "qmake -project" after you added this source file to your project?