我正在使用 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 文件的错误,我做了吗我不应该做的事情?