当前位置: 首页 > article >正文

QT搭建MQTT开发环境

QT搭建MQTT开发环境

第一步、明确安装的QT版本

在这里插入图片描述

注意: 从QT5.15.0版本开始,官方不再提供离线版安装包,除非你充钱买商业版。

而在这里我使用的QT版本为5.15.2,在线安装了好久才弄好,还是建议使用离线安装的版本

在这里可以直接从国内的QT源下载:qt-opensource-windows-x86-5.14.2.exe
网盘链接(永久有效):qt-opensource-windows-x86-5.14.2.exe

链接使用的是阿里云的镜像源,点击就可以下载,注意在安装的时候需要准备好QT的账号,这里随便用一个邮箱注册就好,要不然没有办法安装(官方注册链接)

第二步、下载官方的QT MQTT源码

在这里给出两个下载途径:
一、GitHub:qtmqtt
二、GitCode:qtmqtt

GitCode是从GitHub上同步的源码,如果在GitHubClone不下就还是从国内的同步源下载
在这里插入图片描述

三、切换项目分支

在前期准备的时候也是一直找不到他们对应结构下文件,去看一下对应的版本才发现,QT官方对不同版本的QT有着不同的对应版本的项目工程,这才是导致你一直没有办法找到对应文件的问题所在(超级大坑

查询所有分支

git branch -a

在这里插入图片描述
切换到自己QT对应版本的分支

git switch -c origin/5.15.2

在这里插入图片描述
这里你就可以看到目录下的文件就会有些不同,qtmqtt.pro就会出现在更目录下,然后点击打开项目即可

注意:如果想要省略切换分支这一步,就要在克隆源码上添加命令

例如

git clone -b 5.15.2 https://github.com/qt/qtmqtt.git 

中间的参数为QT的版本号,这里先在网页里找到对应的分支再进行操作

四、编译项目源码

打开根目录下的项目工程

在这里插入图片描述
这里根据自己的项目需求和习惯来进行选择

这里打开后会自动加载一系列文件,还会有报错,这里忽略这些错误

在这里插入图片描述

这里切换Release版本编译

在这里插入图片描述

执行qmake

在这里插入图片描述
在这里插入图片描述
这里编译需要一段时间
在这里插入图片描述
编译完成

构建项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
构建完成

五、移植项目工程文件

由于在这里尝试过很多次的将文件移植到编译工程中,但是一直都没有成功,这里采用工程项目移植的方式确保工程项目能稳定运行编译

先创建一个空项目,切换到对应的分支然后编译运行一下
在这里插入图片描述
确保对应目录下有对应的文件
在这里插入图片描述

移植文件到项目文件夹

include文件夹复制到克隆源码目录下的src/mqtt
在这里插入图片描述
然后将源码目录下src文件夹下的mqtt文件夹复制到工程的根目录下
在这里插入图片描述

在这里我们就完成了初步的文件移植的工作

六、项目的配置

添加网络模块

QT += network

添加目录索引(这里添加时为了在写代码的时候有提示,如果不添加编译也不会报错)

INCLUDEPATH += $$PWD/include
DEPENDPATH += $$PWD/include

在这里插入图片描述

添加外部库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击下一步完成就好,这里就会自动添加其对应路径,到这里初步的项目的编译环境就配置完成了

七、复制官方的示例进行测试

simpleclient源码测试

在这里插入图片描述
将这四个文件复制替换
在这里插入图片描述

打开项目文件,在mianwindow.h中修改头文件引用

在这里插入图片描述

刚开始的时候出现索引不到UI控件,这里先清除一下,然后删除编译输出文件

在这里插入图片描述

点击运行,就可以成功运行例程

在这里插入图片描述
运行成功,完结撒花!


http://www.kler.cn/a/2104.html

相关文章:

  • OpenHarmony 3.2 网卡获取ip地址缓慢分析
  • 【1.排序】
  • ViEW生命周期
  • Git实用指南(精简版)
  • SLURM资料
  • 服务器防火墙设置某个端口号只允许固定 ip地址访问
  • 【数据结构】Java实现双向链表
  • 个人小站折腾后记
  • Linux命令---设备管理
  • 太强了,英伟达面对ChatGPT还有这一招...
  • 文心一言实际测试——让我们拿实际说好坏
  • QT 如何提高 Qt Creator 的编译速度
  • 【十二天学java】day04-流程控制语句
  • MySQL-存储过程
  • Java实习生------MySQL10道面试题打卡
  • vue3使用vee-validate自定义表单校验,提交实现步骤
  • 收到6家大厂offer,我把问烂了的《Java八股文》打造成3个文档。共1700页!!
  • Java之类与对象(图文结合)
  • C++实现通讯录管理系统
  • async与await异步编程
  • WPF 认识WPF
  • Mybatis的多表操作
  • unity3d游戏运行时lua热重载
  • Kaggle实战入门:泰坦尼克号生还预测(进阶版)
  • Qt cmake 资源文件的加载
  • LeetCode:27. 移除元素