### 文章目录
- [@[toc]](#文章目录 @[toc] 1、概述 2、下载QtMqtt源码 3、编译 4、验证 5、参考 6、视频)
- [1、概述](#文章目录 @[toc] 1、概述 2、下载QtMqtt源码 3、编译 4、验证 5、参考 6、视频)
- [2、下载QtMqtt源码](#文章目录 @[toc] 1、概述 2、下载QtMqtt源码 3、编译 4、验证 5、参考 6、视频)
- [3、编译](#文章目录 @[toc] 1、概述 2、下载QtMqtt源码 3、编译 4、验证 5、参考 6、视频)
- [4、验证](#文章目录 @[toc] 1、概述 2、下载QtMqtt源码 3、编译 4、验证 5、参考 6、视频)
- [5、参考](#文章目录 @[toc] 1、概述 2、下载QtMqtt源码 3、编译 4、验证 5、参考 6、视频)
- [6、视频](#文章目录 @[toc] 1、概述 2、下载QtMqtt源码 3、编译 4、验证 5、参考 6、视频)
更多精彩内容 |
---|
👉内容导航 👈 |
👉Qt网络编程 👈 |
1、概述
Qt默认是不包含mqtt库的,如果需要使用到mqtt库就只能自己编译配置;
网络所有的QtMqtt配置的文章都是编译完成手动复制,非常麻烦,对新手也非常不友好吗,容易漏了一些步骤;
本文中主要说明如何自动编译配置 QtMqtt,无需手动拷贝 、生成帮助手册 ;
注意: 编译前需要安装sudo apt install perl
,如果没有perl则编译后生成的头文件都是带.h后缀的。
演示环境:
环境 | 版本 |
---|---|
相同 | ubuntu22.04 |
Qt | 5.14.2 |
QtMqtt | 5.14.2 |
2、下载QtMqtt源码
- 命令行下载:下载完成后选择QtMqtt版本,与Qt版本相同或者相近;
shell
git clone https://github.com/qt/qtmqtt.git
git clone http://code.qt.io/qt/qtmqtt.git
git clone https://code.qt.io/qt/qtmqtt.git
git tag # 查看分支
git checkout 5.14.2 # 切换分支
- 浏览器下载:
3、编译
- 使用qtcreator打开qtmqtt.pro(qtcreator如果不是使用sudo权限运行,则下面的2、3步需要自己打开终端运行命令行)
- 添加编译配置;
- 选择【项目】【构建】【添加构建步骤】【make】;
- 第一个:在make参数 项添加
docs
,用于生成帮助手册; - 第二个:在make参数 项添加
install_docs
,用于自动安装帮助手册;(需要管理员权限) - 第三个:在make参数 项添加
install
,用于自动安装编译好的qtmqtt;(需要管理员权限)
- 编译报错:是因为使用make install_docs安装没有权限;
shell
19:57:10: 正在启动 "/usr/bin/make" install_docs -j16
cd src/ && ( test -e Makefile || /opt/Qt5.14.2/5.14.2/gcc_64/bin/qmake -o Makefile /home/mhf/qtmqtt/src/src.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug ) && /usr/bin/make -f Makefile install_docs
make[1]: Entering directory '/home/mhf/qtmqtt/build/gcc64-Debug/src'
cd mqtt/ && ( test -e Makefile || /opt/Qt5.14.2/5.14.2/gcc_64/bin/qmake -o Makefile /home/mhf/qtmqtt/src/mqtt/mqtt.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug ) && /usr/bin/make -f Makefile install_docs
make[2]: Entering directory '/home/mhf/qtmqtt/build/gcc64-Debug/src/mqtt'
/opt/Qt5.14.2/5.14.2/gcc_64/bin/qmake -install qinstall /home/mhf/qtmqtt/build/gcc64-Debug/doc/qtmqtt /opt/Qt5.14.2/Docs/Qt-5.14.2/qtmqtt
/opt/Qt5.14.2/5.14.2/gcc_64/bin/qmake -install qinstall /home/mhf/qtmqtt/build/gcc64-Debug/doc/qtmqtt.qch /opt/Qt5.14.2/Docs/Qt-5.14.2/qtmqtt.qch
Error copying /home/mhf/qtmqtt/build/gcc64-Debug/doc/qtmqtt.qch to /opt/Qt5.14.2/Docs/Qt-5.14.2/qtmqtt.qch: Destination file exists
Error copying /home/mhf/qtmqtt/build/gcc64-Debug/doc/qtmqtt/examples-manifest.xml to /opt/Qt5.14.2/Docs/Qt-5.14.2/qtmqtt/examples-manifest.xml: Destination file exists
make[2]: *** [Makefile:2947: install_inst_qch_docs] Error 3
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/mhf/qtmqtt/build/gcc64-Debug/src/mqtt'
make[2]: *** [Makefile:2938: install_inst_html_docs] Error 3
make[1]: Leaving directory '/home/mhf/qtmqtt/build/gcc64-Debug/src'
make[1]: *** [Makefile:540: sub-mqtt-install_docs] Error 2
make: *** [Makefile:597: sub-src-install_docs] Error 2
19:57:11: 进程"/usr/bin/make"退出,退出代码 2 。
Error while building/deploying project qtmqtt (kit: gcc64)
When executing step "Make"
- 打开终端,进入编译路径下,再使用
sudo make install
、sudo make install_docs
进行安装。
4、验证
- 将qtmqtt\examples\mqtt路径下的示例工程复制 出来,使用qtcreator打开进行编译。
- 如果不复制到qtmqtt工程外,可能无法编译。
- 编译成功后如下所示:
- 使用qtmqtt只需要在pro文件中添加
QT += mqtt
就可以引入。
5、参考
- qt/qtmqtt.git - Qt Module to implement MQTT protocol version 3.1 and 3.1.1 http://mqtt.org/
- GitHub - qt/qtmqtt: Qt Module to implement MQTT protocol version 3.1 and 3.1.1 http://mqtt.org/
6、视频
linux下qt5全自动编译配置qtmqtt