首先 QT的版本和mqtt包的版本要一致(我这里QT和mqtt的版本都是5.14.2)
QT安装包(5.14.2)下载地址:Index of /archive/qt/5.14
mqtt包的一个连接(可以选择相应的版本) GitHub - qt/qtmqtt at 5.14.2
![](https://img-blog.csdnimg.cn/5b31a18f3abe4f16a2d253541841ec67.png)
将mqtt包解压后,mqtt.pro使用QTCREATOR打开,用release编译。
编译中可能会出错: “QtMqtt/qmqttglobal.h”: No such file or directory
将mqtt包里面src源码文件夹下所有头文件复制一份到 QT安装包目录下include/mqtt文件夹即可解决。
之后构建成功后有以下步骤:
1.将mqtt包 构件目录里面的 lib中的文件全部复制到对应QT编译器的lib文件夹中
![](https://img-blog.csdnimg.cn/a9b3621ce65741e381cac59be0fc669a.png)
![](https://img-blog.csdnimg.cn/01606eec76b84262a80117b06b89195c.png)
2.将mqtt包 构件目录里面的bin文件夹下的文件 复制到对应QT编译器的bin文件夹中
![](https://img-blog.csdnimg.cn/cb664dae4d7a46999d3b9de0a1824ae7.png)
![](https://img-blog.csdnimg.cn/2936487d80ca4a199029db3e43f28138.png)
3.将mqtt包 构件目录里面的mkspecs文件夹下的modules或者modules-inst 文件夹下的文件复制到QT编译器对应的目录下
![](https://img-blog.csdnimg.cn/db4cdd42b2464e8396addffa2df02be6.png)
![](https://img-blog.csdnimg.cn/65521462470b46ad894ff9426f3e9237.png)
4.将mqtt包里面的 examples\mqtt\simpleclient文件夹复制一份到工程目录(即复制一份来实验),找开后,添加mqtt模块。将pro文件里面东西改成这样。
![](https://img-blog.csdnimg.cn/5e7d1e81f5e6424b801ef55e57940fee.png)
再将mainwindow.h头文件改成这样然后就不会报错了
![](https://img-blog.csdnimg.cn/c9bde383470544bd822a2e02add80794.png)
然后点击运行 就会出现一个界面了
![](https://img-blog.csdnimg.cn/657665c49a2644a9a6796ada40ab4ea4.png)
官方提供了 test.mosquitto.org 和 broker.hivemq.com 两个测试地址),也可以使用自己的地址。下面进行一些测试:
State Change0 表示等待中
State Change2 表示已连接上。
![](https://img-blog.csdnimg.cn/fc358e0bccda44edaaa5f9f7ee2d302e.png)
5.进行我自己的一个QT项目进行测试
双击工程里面的.pro文件打开工程 点击configure project
![](https://img-blog.csdnimg.cn/4038816f19a3404f8198e4715a3f9c06.png)
点击构建后报出这个错误
![](https://img-blog.csdnimg.cn/619dbec737e544eab650e527f5112c6e.png)
原因是这个路径有错 改正方法 将QT安装包里面的mingw73_64文件夹下面的lib文件夹(当然也可以是其它的 如mingw73_32文件夹) 复制到工程里面(lib文件夹) 然后根据存放的位置,复制这个文件夹(lib文件夹)的路径。
![](https://img-blog.csdnimg.cn/4756b87676084ad5921ba48cb94523e7.png)
![](https://img-blog.csdnimg.cn/df635bd7f068406ca631a2cda792de7e.png)
在这个QT的.pro文件下面的这个语句 LIBS += H:\MqttTest\lib\lib*.a 将这个错误的路径 改成这个文件夹的路径 (LIBS += D:\QTcode\led\MqttTest1\lib\lib*.a) (我的路径) 然后再次构件 我这里选的是64位的 然后构件选的是release 后面直接运行就出来了
![](https://img-blog.csdnimg.cn/e06ab5d310604b799b1e7b5e4098e0b4.png)
都成功了嘛!!!
给个免费的三连哦!!!