• 5304阅读
  • 1回复

[提问]Qt编译问题 [复制链接]

上一主题 下一主题
离线tiantangtl
 
只看楼主 倒序阅读 楼主  发表于: 2012-07-30
关键词: 求助编译
  1. 1>Linking...
  2. 1>finddialog.obj : error LNK2001: unresolved external
  3. symbol "public: virtual struct QMetaObject const * __thiscall
  4. FindDialog::metaObject(void)const " ([email]?metaObject@FindDialog@@UBEPBUQMetaObject@@XZ[/email])
  5. 1>finddialog.obj
  6. : error LNK2001: unresolved external symbol "public: virtual void * __thiscall
  7. FindDialog::qt_metacast(char const *)" ([email]?qt_metacast@FindDialog@@UAEPAXPBD@Z[/email])
  8. 1>finddialog.obj
  9. : error LNK2001: unresolved external symbol "public: virtual int __thiscall
  10. FindDialog::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email]?qt_metacall@FindDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z[/email])
  11. 1>finddialog.obj
  12. : error LNK2001: unresolved external symbol "public: static struct QMetaObject
  13. const FindDialog::staticMetaObject" ([email]?staticMetaObject@FindDialog@@2UQMetaObject@@B[/email])
  14. 1>finddialog.obj
  15. : error LNK2019: unresolved external symbol "protected: void __thiscall
  16. FindDialog::findNext(class QString const &,enum Qt::CaseSensitivity)" ([email]?findNext@FindDialog@@IAEXABVQString@@W4CaseSensitivity@Qt@@@Z[/email])
  17. referenced in function "private: void __thiscall FindDialog::findClicked(void)"
  18. ([email]?findClicked@FindDialog@@AAEXXZ[/email])
  19. 1>finddialog.obj
  20. : error LNK2019: unresolved external symbol "protected: void __thiscall
  21. FindDialog::findPrevious(class QString const &,enum Qt::CaseSensitivity)"
  22. ([email]?findPrevious@FindDialog@@IAEXABVQString@@W4CaseSensitivity@Qt@@@Z[/email])
  23. referenced in function "private: void __thiscall FindDialog::findClicked(void)"
  24. ([email]?findClicked@FindDialog@@AAEXXZ[/email])
  25. 1>H:\Workplace\Qt_Workplace\Qt_Learn\Win32\Debug\finddialog.exe
  26. : fatal error LNK1120: 6 unresolved externals



刚刚学习Qt,出现如上问题,请高手指导一下,让小弟可以少走些弯路,呵呵。

采用VS2008+Qt形式,查阅资料据说是用了Q_OBJECT,要用qmake生成pro文件,加入工程中,此过程不是很理解,望高人指导一下,谢谢。
离线feifei9054
只看该作者 1楼 发表于: 2012-09-03
在Qt 4.7.3 Command Prompt 中输入finddialog的目录(如cd D:\Qt\finddialog\findialog),回车,输入命令 moc finddialog.h -o moc_finddialog.cpp,然后将此源文件加入到工程中,编译即可。
原因是在finddialog.h中有Q_OBJECT。

试试吧,如果不行再说吧。
快速回复
限100 字节
 
上一个 下一个