在visual 2010上编译qt项目的链接错误
Posted
技术标签:
【中文标题】在visual 2010上编译qt项目的链接错误【英文标题】:link error compiling qt project on visual 2010 【发布时间】:2011-12-03 18:20:43 【问题描述】:我尝试用 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
经过一些“谷歌搜索”后,我没有找到关于这个问题的解决方案,所以 我把我所有的 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();
我没有这些错误,所以我认为这是我的项目特有的,但我没有找到解决方案
谁能帮帮我?
【问题讨论】:
是的,我用 nmake (= 4h) 构建 qt 并在视觉上安装 Qt 插件。我编辑我的帖子 问题解决了!我在moc -I"%QTDIR%\include" -I"%QTDIR%\include\QtCore" -I"%QTDIR%\include\QtGui" -omoc_contact.cpp contact.h
上做同样的事情bnetwork.h
。在此之后,我在我的项目中添加了新的 .cpp 文件,它可以工作了!
很高兴听到这个消息。发布并接受您的答案:)
我不能,我没有声望等级。请问可以发个微信吗?
@Yumino 你不应该真的手动做,看看qmake。
【参考方案1】:
问题解决了!我做 moc -I"%QTDIR%\include" -I"%QTDIR%\include\QtCore" -I"%QTDIR%\include\QtGui" -omoc_contact.cpp contact.h 和 bnetwork.h 上的相同。在此之后我添加新的 .cpp 我的项目上的文件,它的工作原理!感谢@Yumino :)
【讨论】:
以上是关于在visual 2010上编译qt项目的链接错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2017 社区版上编译时出现错误 Qt 5.8
在visual studio 2010上编译一个项目时系统报错,提示了问题补充的错误信息。 这样的问题怎么解决?
在 Visual Studio 2017 社区版上编译 Qt 5.8 时出现错误 C3615