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

ubuntu下Qt5自动编译配置QtMqtt环境(10)

文章目录

    • @[toc]
    • 1、概述
    • 2、下载QtMqtt源码
    • 3、编译
    • 4、验证
    • 5、参考
    • 6、视频

更多精彩内容
👉内容导航 👈
👉Qt网络编程 👈

1、概述

  • Qt默认是不包含mqtt库的,如果需要使用到mqtt库就只能自己编译配置;

  • 网络所有的QtMqtt配置的文章都是编译完成手动复制,非常麻烦,对新手也非常不友好吗,容易漏了一些步骤;

  • 本文中主要说明如何自动编译配置QtMqtt,无需手动拷贝、生成帮助手册
    注意: 编译前需要安装sudo apt install perl,如果没有perl则编译后生成的头文件都是带.h后缀的。

演示环境:

环境版本
相同ubuntu22.04
Qt5.14.2
QtMqtt5.14.2

2、下载QtMqtt源码

  • 命令行下载:下载完成后选择QtMqtt版本,与Qt版本相同或者相近;
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.gitgit 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安装没有权限
19:57:10: 正在启动 "/usr/bin/make" install_docs -j16cd 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 installsudo 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



相关文章:

ubuntu下Qt5自动编译配置QtMqtt环境(10)

文章目录 [toc]1、概述2、下载QtMqtt源码3、编译4、验证5、参考6、视频 更多精彩内容👉内容导航 👈👉Qt网络编程 👈 1、概述 Qt默认是不包含mqtt库的,如果需要使用到mqtt库就只能自己编译配置; 网络所有的…...

Vulnhub DC-3靶机攻击实战(一)

导语   在之前的博客分享中,我们介绍了关于如何获取DC-1和DC-2机器的所有的Flag,下面我们来介绍一下如何对DC-3靶机进行渗透测试。 第一步、搭建靶机环境 下载靶机,并且将靶机导入到VMware环境中,如下所示。 第二步、收集服务器信息 进入到Kali攻击机之后,打开root权限…...

常用传感器介绍合集

SW-520D倾斜传感器 HX711模块:高精度称重的核心利器 GY302光照传感器模块详解 MLX90614红外测温传感器介绍 MAX30102心率血氧传感器模块:精准健康监测的利器 RGB颜色传感器简介 DS18B20温度传感器模块 人体红外传感器简介 FC-28土壤湿度传感器 …...

“为您的家电穿上防震铠甲:优质电器缓冲器

在地震频发地区或日常生活中,确保家电的安全和稳定至关重要。为了防止地震、意外碰撞或其他外力对家电造成损害,采用优质的电器缓冲器就像是为家电穿上了一层坚固的“防震铠甲”。这不仅能够有效减少因震动导致的损坏风险,还能显著延长家电的…...

Elasticsearch入门之HTTP高级查询操作

前言 上一篇博客我们学习了es的一些基础操作如下: 创建索引(创建表 create table)查看索引(查看表show tables)查看单个索引(查看单个表show create table)删除索引(删除表&#x…...

Java基础-异常

异常 什么是异常 在实际工作中,遇到的情况不可能是非常完美的。比如:你写一个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据…...

鲲鹏麒麟使用Docker部署Redis5

本次部署采用Docker方式进行部署,服务器为鲲鹏服务器,CPU架构为ARM64,操作系统版本信息为 # cat /etc/kylin-release Kylin Linux Advanced Server release V10 (Tercel)镜像 下载镜像鲲鹏麒麟Redis5镜像包 部署 1、上传镜像到服务器 2、…...

家政项目小程序+ssm

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了微信小程序家政项目小程序的开发全过程。通过分析微信小程序家政项目小程序管理的不足,创建了一个计算机管理微信小程序家政项目小程序的方案。文章…...

Day7 苍穹外卖项目 缓存菜品、SpringCache框架、缓存套餐、添加购物车、查看购物车、清空购物车

目录 1.缓存菜品 1.1 问题说明 1.2 实现思路 1.3 代码开发 1.3.1 加入缓存 1.3.2 清除缓存 1.3.2.1 新增菜品优化 1.3.2.2 菜品批量删除优化 1.3.2.3 修改菜品优化 1.3.2.4 菜品起售停售优化 1.4 功能测试 1.4.1 加入缓存 1.4.2 菜品修改 1.5 代码提交 2.缓存套餐 2.1 Spring C…...

天天 AI-241207:今日热点- Windsurf:在工程能力上进一步进化的Cursor

2AGI.NET | 探索 AI 无限潜力,2AGI 为您带来最前沿资讯。 Windsurf:在工程能力上进一步进化的Cursor 介绍了一个新的AI代码编辑器Windsurf,它被认为是Cursor的进化版,具有更强的工程能力。文章强调了Windsurf在自动化编码和系统…...

Windows远程桌面连接到Linux

我的电脑是一台瘦客户端,公司设置的不能安装其他软件,里面只有几个软件,还好有一个远程桌面(Remote Desktop Connection),我想连接到另一台Linux的电脑上。 在Linux上安装xrdp: sudo apt insta…...

使用前,后端写 具有分页效果的数据展示

目录 前言 效果展示图如下 思路 服务器从前端界面获得什么? 前端界面从后端服务器应该拿到什么? 使用的技术 代码 前端代码 list.jsp中该功能的实现代码 后端代码 对应的servlet 代码 实体类代码 service的实现层 实现该功能的代码 dao层 实…...

ubuntu防火墙管理(六)——ebtables

ebtables 是一个用于管理以太网帧的防火墙工具,主要用于在数据链路层(第 2 层)过滤和控制网络流量。它类似于 iptables,但专注于以太网流量。以下是 ebtables 的基本使用方法和示例。 基本命令 ebtables 的基本命令格式如下&…...

Oracle开发和应用——常用对象(表)

6.5. 常用对象 6.5.1. 表 1)概念 表(Table),是关系库中最基本、也是最常用的数据库对象,用户的数据存储在表中,用户使用数据时可以随时通过表进行检索或操作。也可以说,表是关系库最基本、最根本的特征。我们可以通过查询系统视图来获取表的相关信息。 D:\> sqlp…...

嵌入式蓝桥杯学习8 模拟电压测量

这里本来是要讲输入捕获的知识点的,但是由于学校校赛时间比较紧,校赛没考到输入捕获,所以先写ADC模拟电压测量的知识点。这里将的是单通道阻塞式采样。 Cubemx配置 点开cubemx。 1.将PB15配置为ADC2-IN15。 2.在Analog中点击ADC2&#xff…...

FFmpeg源码中,计算CRC校验的实现

一、CRC简介 CRC(Cyclic Redundancy Check),即循环冗余校验,是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法,主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理,实现错误侦…...

Android笔记【14】结合LaunchedEffect实现计时器功能。

一、问题 cy老师第五次作业 结合LaunchedEffect实现计时器功能。要求:动态计时,每秒修改时间,计时的时间格式为“00:00:00”(小时:分钟:秒)提交源代码的文本和运行截图…...

kubectl 和 kubeconfig 基本原理

云原生学习路线导航页(持续更新中) kubernetes学习系列 快捷连接 Kubernetes架构原则和对象设计(一) 本文介绍kubectl的几个常用命令,kubconfig文件基本属性,并开启kubectl debug日志分析其背后基本原理 …...

LVGL笔录----动画

最近在搞LVGL动画内容,发现网上能参考的资源太少了。现将自己学习到的内容做个笔录,仅供自己记录,若对你有帮助,那么最好不过,共勉! 首先,我是在CodeBlock上仿真 #define PI 3.14159265359stat…...

【LeetCode热题100】BFS解决FloodFill算法

这篇博客主要记录了使用BFS解决FloodFill算法的几道题目&#xff0c;包括图像渲染、岛屿数量、岛屿的最大面积、被包围的区域。 class Solution {using PII pair<int, int>; public:vector<vector<int>> floodFill(vector<vector<int>>& im…...

微信聊天记录永久保存:WeChatExporter开源工具全流程指南

微信聊天记录永久保存&#xff1a;WeChatExporter开源工具全流程指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 问题&#xff1a;数据丢失的三重警示 2023年某科技…...

如何让2015年前的MacBook Pro焕发新生?OpenCore Legacy Patcher完全指南

如何让2015年前的MacBook Pro焕发新生&#xff1f;OpenCore Legacy Patcher完全指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为手中的老款Mac无法升级到…...

Go语言实战:用EMQX搭建MQTT物联网系统(含Docker部署指南)

Go语言与EMQX实战&#xff1a;构建高可靠物联网通信系统 1. 物联网通信基础与MQTT协议解析 在万物互联的时代&#xff0c;设备间的实时通信成为物联网系统的核心需求。MQTT协议凭借其轻量级、低功耗和高效发布/订阅机制&#xff0c;已成为物联网领域的事实标准。让我们深入探讨…...

电路分析不再难:手把手教你用拉式变换搞定零输入与零状态响应(附考研真题解析)

电路分析不再难&#xff1a;手把手教你用拉式变换搞定零输入与零状态响应&#xff08;附考研真题解析&#xff09; 在电子工程与自动化领域&#xff0c;电路分析始终是核心技能之一。面对复杂的动态电路&#xff0c;传统时域分析方法常让人望而生畏——微分方程的建立与求解不仅…...

PostgreSQL实战:使用pg_dump精准导出特定模式下的表结构

1. 为什么需要精准导出特定模式下的表结构 在实际的数据库管理工作中&#xff0c;我们经常会遇到只需要导出特定模式&#xff08;schema&#xff09;下表结构的需求。比如在微服务架构中&#xff0c;每个服务可能对应数据库中的一个模式&#xff1b;或者在进行数据库迁移时&…...

QT实战:5分钟搞定QChartView动态折线图(附完整代码)

QT实战&#xff1a;5分钟实现高性能动态折线图开发指南 在工业控制、金融分析、物联网监控等领域&#xff0c;实时数据可视化一直是开发者的核心需求。QT框架提供的QChart模块&#xff0c;以其高效的渲染性能和简洁的API设计&#xff0c;成为C开发者构建动态图表的首选方案。本…...

【HFP】规范精讲[15]: HFP蓝牙特有AT命令:免提场景专属功能的控制语言

在蓝牙HFP的命令体系中&#xff0c;除了复用自传统移动通信标准的AT命令&#xff0c;还有一类专门为蓝牙免提场景设计的专属AT命令。这些命令就像为蓝牙免提设备量身定制的方言&#xff0c;针对无线音频传输、设备间状态同步、蓝牙特有功能等场景进行了精准优化&#xff0c;是实…...

Unity 2022 LTS 实战:用NavMesh Agent和OffMesh Link,5分钟搞定一个会‘跳’会‘绕’的智能敌人AI

Unity 2022 LTS 实战&#xff1a;用NavMesh Agent和OffMesh Link打造智能敌人AI 在3D动作游戏中&#xff0c;一个只会直线追击的敌人往往会让玩家感到乏味。想象一下&#xff0c;当玩家精心设计的陷阱被敌人轻松绕过&#xff0c;或是敌人突然从高处跳下发动突袭时&#xff0c;游…...

KubeSphere Core 离线部署实战:从镜像搬运到私有仓库配置

1. 离线部署KubeSphere Core的核心挑战 在企业内网环境中部署KubeSphere Core时&#xff0c;最大的障碍就是如何解决容器镜像的获取问题。我去年给某金融机构做私有云改造时就遇到过这种情况——他们的生产环境完全隔离&#xff0c;所有服务器都无法直接访问公网。当时为了部署…...

Ollama部署granite-4.0-h-350m:350MB小模型如何实现高精度RAG推理?

Ollama部署granite-4.0-h-350m&#xff1a;350MB小模型如何实现高精度RAG推理&#xff1f; 350MB的模型大小&#xff0c;却能实现高质量的RAG推理效果&#xff1f;granite-4.0-h-350m这个小巧而强大的模型正在重新定义轻量级AI的可能性。 1. 认识granite-4.0-h-350m&#xff1a…...