`
buliedian
  • 浏览: 1234758 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用Q_OBJECT宏遇到的LINK2001错误

阅读更多

版权声明

请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。

使用了Q_OBJECT宏之后在编译的时候会遇到下面的错误:

--------------------Configuration: testqt - Win32 Debug--------------------
Linking...
test.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall MyMainWindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyMainWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
test.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall MyMainWindow::qt_metacast(char const *)" (?qt_metacast@MyMainWindow@@UAEPAXPBD@Z)
test.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MyMainWindow::metaObject(void)const " (?metaObject@MyMainWindow@@UBEPBUQMetaObject@@XZ)
debug/testqt.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

testqt.exe - 4 error(s), 0 warning(s)

LINK2001的错误就是找不到函数的实现。

在文件末尾加入:#include "test.moc"

*.moc qmake生成的moc文件。

有关moc的东西请参考:

http://www.qiliang.net/qt/moc.html

http://doc.trolltech.com/4.0/moc.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics