我尝试用visual 2010编译一个qt项目,但是当我重建我的解决方案时,我有一些链接错误:
error LNK2001: unresolved external symbol "public: virtual int __thiscall BNetwork::qt_metacall(enum QMetaObject::Call,int,void * *)" on bnetwork.obj
error LNK2001: unresolved external symbol "public: virtual int __thiscall Contact::qt_metacall(enum QMetaObject::Call,int,void * *)" on contact.obj
error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall BNetwork::metaObject(void)const " on bnetwork.obj
error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Contact::metaObject(void)const " on contact.obj
error LNK2001: unresolved external symbol "public: virtual void * __thiscall BNetwork::qt_metacast(char const *)" on bnetwork.obj
error LNK2001: unresolved external symbol "public: virtual void * __thiscall Contact::qt_metacast(char const *)" on contact.obj
经过一些“googlize”之后,我没有找到解决这个问题的方法
我把我的所有Qt库放在c:/QT/4.7.4/lib/上我的项目的附加依赖项,但我总是有这些错误......
我确定Qt是在视觉上构建和安装的,因为当我编译下面的代码时(它是一个例子,而不是我的项目)它可以正常工作:
#include <QtGui/qapplication.h>
#include <QtGui/qpushButton.h>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton bouton("Bonjour les Zéros !");
bouton.show();
QObject::connect(&bouton, SIGNAL(clicked()), &app, SLOT(quit()));
return app.exec();
}
我没有这些错误,所以我认为这是我的项目特有但我没有找到解决方案
任何人都可以帮助我吗?
答案 0 :(得分:0)
问题解决了!我做moc -I“%QTDIR%\ include” -I“%QTDIR%\ include \ QtCore”-I“%QTDIR%\ include \ QtGui”-omoc_contact.cpp contact.h和bnetwork.h上的相同。在此之后我添加新的.cpp 我的项目上的文件,它的工作原理!感谢@Yumino:)