我正在使用QT进行UI应用程序。应用程序将在桌面上运行以从用户获取bin文件,它将通过串行端口编程微控制器。我已选择“qextserialport”库进行串口通信。
我在我的课程中包含了qextserialport标题,如:
#ifndef __SERIALHELPER_H
#define __SERIALHELPER_H
#include <serialPortDriver/qextserialport.h>
#include "QThread"
class serialHelper : public QThread
{ etc.....
在.pro文件中,我为qextSerial添加了这一行
include(qextserialport.pri)
现在我收到了多个定义错误:
./ debug \ moc_qextserialenumerator.o:在函数'ZN20QextSerialEnumerator18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv'中:
D:\ QTNTloader-build-minGW-Debug / debug / moc_qextserialenumerator.cpp:47:'QextSerialEnumerator :: qt_static_metacall的多重定义(QObject *,QMetaObject :: Call,int,void **)'
./ debug \ qextserialenumerator.o:D:\ QTNTloader-build-minGW-Debug /../ QTNTloader2 / serialPortDriver // moc_qextserialenumerator.cpp:47:首先在这里定义
因为这是我第一个使用QT的UI程序,所以无法找到解决方案。你对错误的原因有什么看法吗?
现在还有一件事在我脑海中下载qextserial的时候我打开它作为项目,构建它并获取.moc文件并手动将它们添加到我的项目中。我这样做是因为我收到了关于丢失moc文件的错误,我做了一些我不想做的事吗?
答案 0 :(得分:0)
您不必手动将.moc文件添加到项目中,让qmake为您执行此操作。 打开Visual Studio命令提示符(从“开始”菜单),转到包含.pro文件的文件夹,然后运行:
qmake -tp vc
这应创建一个vcproj文件,您可以在Visual Studio中打开该文件,其中包含编译和链接所需的所有文件。