本文使用的配置
QT版本:QT5.14
编译器:MSVC2017
MQTT使用的是EMQ提供的源码,下载地址
下载后解压,打开工程文件qmqtt.pro
选择MSVC2017下,Release编译方式进行编译
如果报错:perl 不是内部或外部命令,也不是可运行的程序。
需要安装perl,下载地址:https://www.perl.org/get.html
编译成功后,生成文件夹:
build-qmqtt-Desktop_Qt_5_14_2_MSVC2017_64bit-Release
包括一下文件
以上步骤完成了源码的编译,下面要将MQTT导入工程文件中
在新建工程中建立lib文件夹,并将lib中以下四个文件拷贝入其中
在新建工程中建立include文件夹,并将源码中qmqtt-master\src\mqtt目录下的.h文件拷贝入其中
接着在QT的安装目录(Qt5.14.2\5.14.2\msvc2017_64\include)下新建文件夹mqtt,将源码中src下mqtt文件中的.h文件复制过去,如下图
最后新建的工程目录下的文件为:
打开工程文件
在其中添加
win32:CONFIG(release, debug|release): LIBS += -LD:/Qt/project/mqtt_test/lib/ -lQt5Qmqtt
else:win32:CONFIG(debug, debug|release): LIBS += -LD:/Qt/project/mqtt_test/lib/ -lQt5Qmqttd
INCLUDEPATH += D:/Qt/project/mqtt_test/include
DEPENDPATH += D:/Qt/project/mqtt_test/include
这样,我们就可以在文件里调用了
引用头文件
#include "qmqtt.h"
设置ID、用户名、密码
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
QMQTT::Client *client = new QMQTT::Client(QHostAddress::LocalHost, 1883);
client->setClientId("clientId");
client->setUsername("user");
client->setPassword("password");
client->connectToHost();
ui->setupUi(this);
}
到这里就成功实现了Qt中调用MQTT