關於VS報無法解析外部符號的錯誤

pamxy發表於2013-08-09

error LNK2001: 無法解析的外部符號 "__declspec(dllimport) protected: virtual void __thiscall QWidget::changeEvent(class QEvent *)" (__imp_?changeEvent@QWidget@@MAEXPAVQEvent@@@Z) Qt_ProfileName.obj

error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: static struct QMetaObject const QDialog::staticMetaObject" (__imp_?staticMetaObject@QDialog@@2UQMetaObject@@B),該符號在函式 "private: static void __cdecl MainForm::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" (?qt_static_metacall@MainForm@@CAXPAVQObject@@W4Call@QMetaObject@@HPAPAX@Z) 中被引用 moc_Qt_MainForm.obj


等錯誤是QT初學者經常犯的錯誤,錯誤原因可能有:

1.在繼承QObject類裡忘了加Q_OBJECT巨集

2.未能成功moc 含有Q_OBJECT巨集的類

3.沒有在專案的篩選器裡匯入moc檔案

4.沒有匯入Qt GUI需要用的lib

5.沒有指明Qt GUI 到用的lib的路徑

相關文章