在Visual 2010上编译qt项目的链接错误

时间:2011-12-03 18:20:44

标签: c++ visual-studio visual-studio-2010 qt compilation

我尝试用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();
}

我没有这些错误,所以我认为这是我的项目特有但我没有找到解决方案

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

  

问题解决了!我做moc -I“%QTDIR%\ include”   -I“%QTDIR%\ include \ QtCore”-I“%QTDIR%\ include \ QtGui”-omoc_contact.cpp contact.h和bnetwork.h上的相同。在此之后我添加新的.cpp   我的项目上的文件,它的工作原理!感谢@Yumino:)