2014-03-19 65 views
2

我試圖編譯VS 2012年我第一次Qt工程,我使用Qt 4.8.5開源。我已經成功地完成了所有編譯工作,並且已經安裝了VS2012 QT插件。 QT4只有QT5顯然沒有插件。的Qt 4.8.5的QVariant解析的外部符號的Visual Studio 2012

我有一個非常基本的應用程序編譯並運行,現在我試圖建立使用QTableView中的應用程序。我基於模型視圖教程here建設我的數據庫類。我現在得到以下錯誤: CBDatabase.obj:錯誤LNK2001:無法解析的外部符號「public:virtual class QVariant __thiscall CBDatabase :: data(class QModelIndex const &,int)const」(?data @ CBDatabase @@ UBE?AVQVariant @@ ABVQModelIndex @@ H @ Z)

由於QT5 VS2012加載項試圖鏈接QT5庫,我不得不更改鏈接器屬性以鏈接QT4庫。

所以我最好的猜測是,我沒有鏈接正確的庫,但我似乎無法弄清楚我錯過了哪一個。

這裏是我的庫列表: qtmaind.lib QtCored4.lib QtGuid4.lib QtSqld4.lib

回答

2

鏈接器是告訴你,你沒有定義CBDatabase類的virtual QVariant CBDatabase::data(QModelIndex const &,int) const成員。缺少的成員不是來自Qt,它是你自己代碼的一部分。這個問題與Qt無關。重現它,以下就足夠了(這是整個事情,不需要與Qt連接):

class QModelIndex {}; 
class QVariant {}; 
class CBDatabase { 
public: 
    // declaration, no definition 
    virtual QVariant data(const QModelIndex &, int) const; 
}; 

int main() { 
    CBDatabase db; 
    db.data(QModelIndex(), 0); 
} 
+0

/facepalm讓我們都假裝這從未發生過。 – jasonlg3d

相關問題