QT手动moc问题:virtual struct QMetaObject const * __thiscall Widget::metaObject
【轉自】http://blog.csdn.net/zhenyusoso/article/details/8450906
編寫一個簡單的給予QT的DEMO程序步驟大致如下:
下面開始編程:
A 編寫 main.cpp
B 編寫 hello.h
C 編寫 hello.cpp
D 制作.ui文件,并生成ui_hello.h
打開designer,拖入一個pushButton,一個label。保存為hello.ui。然后生成ui_hello.h,并添加到項目的源文件中。
編譯運行,則出現如下錯誤:
錯誤 1 error LNK2001: 無法解析的外部符號 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject(void)const " (?metaObject@Widget@@UBEPBUQMetaObject@@XZ)?
錯誤 2 error LNK2001: 無法解析的外部符號 "public: virtual void * __thiscall Widget::qt_metacast(char const *)" (?qt_metacast@Widget@@UAEPAXPBD@Z)?
錯誤 3 error LNK2001: 無法解析的外部符號 "public: virtual int __thiscall Widget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Widget@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
錯誤 4 fatal error LNK1120: 3 個無法解析的外部命令 ?
? ?
這是因為在源文件中沒有添加上moc_hello.cpp文件。
解決方法:右擊hello.h,選擇“自定義生成步驟”,“常規”
命令行:moc.exe hello.h -o moc_hello.cpp
輸出:moc_hello.cpp
附加依賴項:moc.exe hello.h
確定,然后,右擊hello.h,選擇 “編譯”,則在文件夾中生成moc_hello.cpp,再將其添加到源文件中。
總結
以上是生活随笔為你收集整理的QT手动moc问题:virtual struct QMetaObject const * __thiscall Widget::metaObject的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QtCreator集成开发环境编译调试V
- 下一篇: 什么情况下可以从算大气的年排放总量