在集成Qt和Vs并尝试编译.pro文件后,我得到了以下错误:
Error 9 error LNK2001: unresolved external symbol "public: virtual int __thiscall Multiplication_dialog::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Multiplication_dialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
Error 7 error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Multiplication_dialog::metaObject(void)const " (?metaObject@Multiplication_dialog@@UBEPBUQMetaObject@@XZ)
Error 8 error LNK2001: unresolved external symbol "public: virtual void * __thiscall Multiplication_dialog::qt_metacast(char const *)" (?qt_metacast@Multiplication_dialog@@UAEPAXPBD@Z)
该如何处理这些内容?
发布于 2012-07-04 12:43:16
引用自“使用Qt4进行C++图形用户界面编程”一书(第19页):为了让moc正常工作,我们必须将类定义放在一个头文件中,独立于实现文件。所以,你需要为你的类写两个文件: Multiplication_dialog.h和Multiplication_dialog.cpp!而且你必须重新创建makefile!
发布于 2012-08-22 23:05:30
今天我可能也遇到了同样的问题。我知道这条线很老了。但它仍然可以帮助一些人。
在我的例子中发生的事情是moc
生成了moc_ .cpp
文件,但VC不知道它也必须编译它们。因此,我手动添加了那些moc生成的文件,以便它可以编译。而且它起作用了。
发布于 2014-12-25 20:02:56
当我为VS使用Qt插件时,同样的问题也发生了,我在构建之后看到了moc文件are not included into project
。我将它们包含到项目中,这些错误已经消失了。
https://stackoverflow.com/questions/6642823
复制相似问题