Ошибка LNK2019 при создании объекта в другом решении c ++ - PullRequest
0 голосов
/ 06 февраля 2011

Я пытаюсь создать объекты, используя файлы другого решения C ++.

  • При создании объекта MyClass1 программа выдает ошибку:

    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
    
  • Когда я создаю объект MyClass2, программа создает объект.Нет ошибок.

Что я должен сделать, чтобы правильно создать MyClass1 объект?


Я вырезал все ненужные части в соответствующем источнике.Код выглядит следующим образом.

файл тестера 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() {

};

1 Ответ

2 голосов
/ 06 февраля 2011

Кажется, что файл myclasses.o отсутствует. Вы уверены, что компилируете и связываете myclasses.o?

Поскольку это Qt, запускаете ли вы "qmake -project" после добавления этого исходного файла в свой проект?

...