Qt搭建MQTT编程环境

QT 部署官方MQTT模块
在Qt Creator中,默认是没有部署Mqtt模块的,在使用QT编程之前,先把mqtt 模块部署到开发环境当中。参考博文:Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建_长沙红胖子-CSDN博客

下载

Qt官方在github上提供了源代码,地址:https://github.com/qt/qtmqtt.选择对应的版本下载

  • 编译源码

打开源码文件,双击.pro打开工程文件,选择release编译。

编译这个源码需要安装perl,否则会报错:perl 不是内部或外部命令,也不是可运行的程序。

perl下载地址:https://www.perl.org/get.html

安装完Perl后会自动写入环境变量, 这时候再次编译(Release模式)QtMqtt源码,编译完成后得到以下文件
 

编译遇到的错误:

1、编译过程会出现没有没有找到qtmqtt相关头文件的情况,这是没有找到qtmqtt的相关头文件:

/home/macian/Project/mqtt/qtmqtt-5.12.7/src/mqtt/qmqttauthenticationproperties.h:33: error: QtMqtt/qmqttglobal.h: No such file or directory

2、在使用arm-hisiv300-linux-gcc交叉编译qt5 ,qmake安装目录的include中创建QtMqtt文件夹

sudo mkdir QtMqtt

3、把源码中的.h头文件拷贝到文件夹中

sudo cp /home/macian/Project/mqtt/qtmqtt-5.12.7/src/mqtt/*.h QtMqtt/

4、ls查看拷贝结果如下

如果使用版本不一致,可能由于版本过高,或者与ubuntu版本不兼容原因可能会出现以下错误。

  • 错误一:
    重新构建,仍然报错缺少 QtMqtt/QMqttClient等头文件,将报错的工程头文件替换
  • 解决方法:
将
#include <QtMqtt/QMqttClient>
改成
#include <QtMqtt/qmqttclient.h>将
#include <QtMqtt/QMqttSubscription>
改成
#include <QtMqtt/qmqttsubscription.h>将
#include <QMqttTopicName>
改成
#include <QtMqtt/qmqtttopicname.h>将
#include <QtMqtt/QMqttMessage>
改成
#include <QtMqtt/qmqttmessage.h>

错误参考链接---树莓派上用QT搭建MQTT环境教程_51CTO博客_树莓派mqtt

编译后工程搭建参考---MQTT设计与实现_mqtt实现-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收款码在线生成系统源码/开源layui前端框架/附多套前端UI模板/三合一收款码生成系统源码

源码简介&#xff1a; 收款码在线生成系统源码&#xff0c;它是采用开源layui前端框架&#xff0c;并且它附多套前端UI模板&#xff0c;作为三合一收款码生成系统源码&#xff0c;界面简洁大方。 Layui前端的多合一收款码在线生成系统源码&#xff0c;附带了多套精美的前端UI…

数据库——安全性

智能2112杨阳 一、目的与要求&#xff1a; 1、设计用户子模式 2、根据实际需要创建用户角色及用户&#xff0c;并授权 3、针对不同级别的用户定义不同的视图&#xff0c;以保证系统的安全性 二、内容&#xff1a; 先创建四类用户角色&#xff1a; 管理员角色Cusm、客户角…

STM32——串口实验(非中断)

需求&#xff1a; 接受串口工具发送的字符串&#xff0c;并将其发送回串口工具。 硬件接线&#xff1a; TX -- A10 RX -- A9 一定要记得交叉接线&#xff01;&#xff01; 串口配置&#xff1a; 1. 选定串口 2. 选择模式 异步通讯 3. 串口配置 4. 使用MicroLIB库 从…

数据结构 | 大根堆

思维导图 代码 #include<stdio.h> #include<iostream> using namespace std; void HeapAdjust(int* arr, int start, int end) {int temp arr[start];for (int i 2 * start 1; i < end; i 2 * i 1) //end可以取到等于 因为它是最后一个元素{if (i<end…

Spring boot注解

1.RestController RestController 注解用于标识一个类,表示该类的所有方法都返回JSON或XML响应&#xff0c;而不是视图页面。它是Controller和ResponseBody的组合 2.RequestMapping RequestMapping 注解用于映射HTTP请求到控制器方法或类。它可以用于类级别和方法级别,用于定…

UI5 development on VS Studio code

今天来分享一下如何VS studio code 上UI5开发环境的搭建 1.安装Node.js 路径&#xff1a;Node.js 因安装步骤较为简单&#xff0c;故不在此赘述。 验证方法如下&#xff1a;WINR-->CMD--->node --version 出现下图即可 2. 安装UI5 CLI (为了后面我们方便使用UI5 的命令…

向ChatGPT提特殊问题,可提取原始训练数据!

随着ChatGPT等模型的参数越来越大&#xff0c;预训练数据也呈指数级增长。谷歌DeepMind、华盛顿大学、康奈尔大学等研究人员发现,无论是开源还是闭源模型&#xff0c;在训练过程中皆能记住一定数量的原始训练数据样本。 如果使用特定的恶意攻击&#xff0c;便能轻松地从模型中…

python pip 相关缓存清理(windows+linux)

pip会大量缓存&#xff0c;如果全部堆在系统盘&#xff0c;会造成别的无法使用 windows和linux通用 一、linux linux是在命令行操作 1.查看缓存位置 pip cache dir我这里默认是在/root/.cache/pip 2.查看大小 du -sh /root/.cache/pip结果如下&#xff1a; 3.清理&#…

深入理解 Go Channel:解密并发编程中的通信机制

一、Channel管道 1、Channel说明 共享内存交互数据弊端 单纯地将函数并发执行是没有意义的。函数与函数间需要交互数据才能体现编发执行函数的意义虽然可以使用共享内存进行数据交换&#xff0c;但是共享内存在不同的goroutine中容易发送静态问题为了保证数据交换的正确性&am…

Windows的C盘爆掉了怎么办?

本文参考&#xff1a; C盘太满怎么办&#xff1f;亲测8种好用方法&#xff01; 如果C盘的分区爆掉了&#xff0c;变红色了&#xff0c;是时候该处理这个问题了&#xff0c;解决你的C盘焦虑&#xff01; 第一招&#xff1a;删除C盘文件 首先你会想到清理C盘里面的文件&#x…

数据结构之----数组、链表、列表

数据结构之----数组、链表、列表 什么是数组&#xff1f; 数组是一种线性数据结构&#xff0c;它将相同类型的元素存储在连续的内存空间中。 我们将元素在数组中的位置称为该元素的索引。 数组常用操作 1. 初始化数组 我们可以根据需求选用数组的两种初始化方式&#xff…

机器视觉系统选型-同轴光源分类及应用场景

同轴光源 从与相机同轴的方向均匀照射漫射光 Mark点定位条码识别二维码识别反光物体表面缺陷检测 高亮同轴光源 照射光线与水平方向成低角度夹角Mark点定位反光件表面凹坑、损伤、缺陷印刷电路板二维码识别 平行同轴光源 从与相机同轴方向照射平行度高 的平行光尺寸测量玻璃检…

团队git操作流程

项目的开发要求 项目组厉员每天代码提交不少于20次企业项目开发代码的每天的提交一般提交3-5次代码仓库的管理 git的基础操作流程 命令模式 git push插件模式 vscode git graphGUI软件管理模式 sourcetree git在项目团队化开发中的应用 master(一般是不动的)dev (主要是拿…

2. 如何通过公网IP端口映射访问到设备的vmware虚拟机的ubuntu服务器

文章目录 1. 主机设备是Windows 11系统2. 安装vmware虚拟机3. 创建ubuntu虚拟机&#xff08;据说CentOS 7 明年就不维护了&#xff0c;就不用这个版本的linux了&#xff09;4. 安装nginx服务:默认端口805. 安装ssh服务:默认端口226. 设置主机 -> ubuntu的端口映射7. 设置路由…

【Amis Low Code 结合FastAPI进行前端框架开发】

官方文档 封装思想 直接复制官网json数据即可开发每个json中的接口由fastapi 转发&#xff08;透传&#xff09;使其开发模式与前端思维一致 基础组件 from amis import Page, Service, App from pydantic import BaseModel, Field from fastapi import FastAPI, Request, …

c++学习之智能指针

前言&#xff1a;在此之前我们已经学习到了异常的使用&#xff0c;虽然异常在大部分情况都还可以&#xff0c;但也存在太多缺陷&#xff0c;对于异常的问题&#xff0c;入内存泄漏&#xff0c;在复杂的场景下使用起来也是非常麻烦。为了更好的解决这些问题&#xff0c;c11中引入…

C语言—每日选择题—Day45

第一题 1. 以下选项中&#xff0c;对基本类型相同的指针变量不能进行运算的运算符是&#xff08;&#xff09; A&#xff1a; B&#xff1a;- C&#xff1a; D&#xff1a; 答案及解析 A A&#xff1a;错误&#xff0c;指针不可以相加&#xff0c;因为指针相加可能发生越界&…

【华为数据之道学习笔记】4-2信息架构原则:建立企业层面的共同行为准则

信息架构承载了企业如何管理数据资产的方法&#xff0c;需要从整个企业 层面制订统一的原则&#xff0c;这些原则不仅是对数据专业人员的要求&#xff0c;也是对业务的要求&#xff0c;因为业务才是真正的数据Owner。所以&#xff0c;公司所有业务部门都应该共同遵从信息架构原…

Redis安装教程

文章目录 Redis安装说明1.单机安装Redis1.1.安装Redis依赖1.2.上传安装包并解压1.3.启动1.3.1.默认启动1.3.2.指定配置启动1.3.3.开机自启 2.Redis客户端2.1.Redis命令行客户端2.2.图形化桌面客户端2.2.1.安装2.2.2.建立连接 Redis安装说明 大多数企业都是基于Linux服务器来部…

LeetCode(58)随机链表的复制【链表】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 随机链表的复制 1.题目 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节…