2011-02-06 63 views
0

我想通過使用另一個C++解決方案的文件創建對象。當我創建一個MyClass2對象程序創建的對象LNK2019在另一個解決方案中創建對象時出錯C++

1>main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall MyClass1::~MyClass1(void)" ([email protected]@[email protected]) referenced in function _main 
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall MyClass1::MyClass1(class QWidget *,class QFlags<enum Qt::WindowType>)" ([email protected]@[email protected]@@[email protected]@[email protected]@@@@Z) referenced in function _main 
    • 當我創建一個MyClass1對象程序給出的錯誤。沒有錯誤。

    我該怎麼做才能正確創建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文件

    #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文件

    #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() { 
    
    }; 
    

  • 回答

    2

    這似乎是myclasses.o文件丟失。你確定你正在編譯和鏈接myclasses.o嗎?

    既然這是Qt,那麼在將此源文件添加到您的項目之後,是否運行了「qmake -project」?

    +0

    >我在Visual Studio中構建了包含「myclasses.cpp」和「myclasses.h」的解決方案。 >然後我將「myclasses.h」的位置添加到項目屬性的「附加包含目錄」中。 >但我沒有將myclasses.obj文件添加到新解決方案中。我應該把它放在鏈接器的屬性? – trante 2011-02-06 16:48:25

    相關問題