3
我試圖使用Q_OBJECT宏在我的Visual Studio 2010旗艦項目,它給了我無法解析的外部錯誤:在VS2010項目中使用Q_OBJECT給無法解析的外部
1>Application.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall MyButton::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected])
1>Application.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall MyButton::qt_metacast(char const *)" ([email protected]@@[email protected])
1>Application.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MyButton::metaObject(void)const " ([email protected]@@[email protected]@XZ)
我有一個類似的項目使用QMaker,並通過乾淨的項目和重新運行qmake來解決它。事情是,VS中沒有「Qmake」按鈕!
我已經閱讀了幾篇文章,比如this one,並完成了他們告訴我的所有事情。雖然它沒有真正的幫助,因爲我已經有一個.cpp和幾個頭文件的現有項目,我想避免創建一個.pro文件並將代碼移入它。
我已經安裝了VS Qt插件,它給了我VS面板上新的酷「Qt」按鈕,雖然沒有幫助未解決的外部(可能我不知道如何正確使用它)。
我在VS通過自定義生成工具跑了商務部對我Application.h文件(有Q_OBJECT唯一的一個),但仍然沒有幫助:
C:\Utilities\QtSDK\Desktop\Qt\4.8.1\msvc2010\bin\moc Application.h -o tmp\moc\moc_Application.cpp
什麼可能導致我的問題我該如何解決它?
非常感謝你,它的工作! – user1514665