MQTT--Qt5编写MQTT-client客户端

2023-11-09

库的下载地址:https://github.com/emqtt/qmqtt 
好不容易编译成功,于是写下经验。


编译环境:

  • 桌面环境:Windows10
  • Qt5版本:这里写图片描述

开始

1、下载库文件:https://github.com/emqtt/qmqtt

2、解压出来

这里写图片描述

3、进入src文件下双击src.pro

这里写图片描述

4、配置文件

这里写图片描述

5、点击build完成

这里写图片描述

6、重点!!! 
- 此时,在根目录下就会生成两个文件夹:include和lib 
- 根目录的意思是:你在哪里打开的就到那个盘的顶目录里找。 
- 比如,我在桌面打开src.pro并且编译的,那么我就得到C ://盘的下面找。以此类推!

这里写图片描述

7、将生成的include文件整个拷贝到刚刚解压出来并且已经编译过的文件目录src/mqtt/中

这里写图片描述

8、新建一个工程

这里写图片描述

9、然后将前面放了include文件的mqtt文件夹整个拷贝到新建的项目工程的文件夹中

这里写图片描述

10、再将src编译出来的在xx根目录的lib文件夹也拷贝到到这个工程下面来 
这里写图片描述

11、然后debug编译一下(一定记得先debug编译一下,因为等下好把dll文件放到生成的debug文件中)将lib文件夹中的两个动态链接库:qmqtt.dll, qmqttd.dll拷贝到新建工程的Debug文件夹中。

这里写图片描述

12、 在QtCreator的工程中添加之前从根目录一直加进来的include文件中的qmqttDepends文件,然再添加那个qmqtt.h头文件。最后添加那两个库文件。 
这里写图片描述

这里写图片描述

这里写图片描述

至此配置完成,接下来就是编写代码进行测试。

13、编写测试代码

(1)在工程pro文件中添加network。

(2)mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "mqtt/qmqtt.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
  •  

(3)mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    QHostAddress host(QString("127.0.0.1"));
    quint16 port = 1883;

    QMQTT::Client * client = new QMQTT::Client();
    client->setHost(host);
    client->setPort(port);
    client->connectToHost();
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

编译通过了就算测试通过了

从Qt5.10开始,官方开始支持MQTT,类名为QtMqtt,5.10之前的版本,可以到地址https://github.com/qt/qtmqtt下下载源码自己编译。

但是安装5.10.1和5.11.1的版本,都没有找到mqtt的类,不知道啥原因

 

from:https://blog.csdn.net/qq_28877125/article/details/78357510

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MQTT--Qt5编写MQTT-client客户端 的相关文章

  • Vuecli3 axios开发环境代理和线上代理设置

    文章目录 1 概述 前后端分离的情况下肯定会跨域 这篇文章主要讲axios跨域的设置 2 本地开发环境配置 2 线上环境配置 用nginx作反向代理 不用本地代理了 1 概述 前后端分离的情况下肯定会跨域 这篇文章主要讲axios跨域的设置

随机推荐

  • 学c语言的第一步,编译器的使用

    学习c语言在不同的平台 有不同的编译器 其中windows平台有visual studio的IDE codeblocks eclipsec c 和QT编译器 而在Linux平台有vi vim codeblocks eclipsec c 和Q
  • python dfs算法_2020蓝桥杯python组备战方法

    在蓝桥杯的程序设计比赛里新增加了python组 这是一个全新的组别 目前蓝桥杯官网已经开通了python的练习平台 链接http dasai lanqiao cn 如何准备2020年蓝桥杯python程序设计呢 我分为四个部分讲解 了解这四
  • python 深度学习 解决遇到的报错问题4

    目录 一 DLL load failed while importing imaging 找不到指定的模块 二 Cartopy安装失败 三 simplejson errors JSONDecodeError Expecting value
  • 三星gearvr控制器及手柄全部输入

    OVRInput Unified Input API OVRInput exposes a unified input API for multiple controller types It may be used to query vi
  • MySQL学习:50道经典题目(含参考答案)(更新中)

    50道经典MySQL练习题 参考博客 SQL经典50题练习 sql习题 不高冷面包人的博客 CSDN博客c 1 创建数据表 学生表 CREATE TABLE IF NOT EXISTS student student id INT 10 N
  • vant引入组件报错_在Vue中elementui组件库的基本使用

    今天我们来聊聊elemen ui组件库 Element 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 最近我做的项目几乎都是管理系统 所以 为了节省时间 开始使用 element ui 一个简单的管理系统来说 这
  • 将字符串和日期互相转换

    将字符串转换为日期 import datetime datestr 1993 01 01 print type datastr date datetime datetime strptime datestr Y m d print date
  • 沁恒CH32V307以及CH32VF103中断只能进一次的解决方法

    文章背景 笔者最近使用沁恒CH32V307处理器进行应用开发 基于RT Thread实时操作系统和LWIP做TCP和CAN的透传 因为官方BSP并没有适配RT Thread的CAN驱动 暂时将RT Thread作为普通实时系统使用 先不对C
  • qt读写CSV文件

    最近的要用到CSV格式的数据 所以这篇文章讲述一下QT读取CSV文件数据 xls文件是Excel电子表格的文件格式 而csv是一种比较通用的文件格式 xls文件只能用Excel才能打开 而csv文件可以用Excel 记事本 文本编辑器打开
  • vue 基础教程(四) 表单控件绑定 购物车 表单修饰符

    1 vue 表单控件绑定 v model 再来一个最简单的内容 div div
  • YOLOV5学习笔记(九)——损失函数

    1 Yolov5损失函数分析 2 bbox 回归损失 v5 使用的是 CIoU Loss 后续又优化出EIOU Loss如下所示 论文 Focal and efficient IOU loss for accurate bounding b
  • 启动dbforge studio for mysql的调试功能

    1 安装dbforge studio for mysql 2 使用dbforge studio for mysql 并以root身份连接数据库后编写一个存储过程 3 右击存储过程选择Debug 然后选择Step Into 4 打断点就可以调
  • Python中defaultdict与lambda表达式的配合使用

    环境 Python 3 defaultdict是collections模块下的一个类 这个类是dict的一个子类 重写了一个方法并增加了一个事件变量 在实例化的时候 第一个参数提供给default factory的初始化函数 这个参数可以是
  • python爬取肯德基KFC全国门店2021-01-11

    python爬取肯德基KFC全国门店 改进版 之前 参考两位网友的代码 爬取全国KFC门店 发现有些许问题 在参考网友代码的基础上 进行改进 最终爬取了全国KFC门店 思路如下 第一步 通过KFC门网页 获取所在KFC下的城市列表 存为列表
  • 通过集成FastJsonHttpMessageConverter将返回报文统一加密处理

    在编写接口中 为了安全起见 会将报文进行加密处理 如果每个返回报文都在controller处进行加密 当加密方式发生变化或多渠道接入返回不同密文时 改动较为繁琐 通过集成FastJsonHttpMessageConverter将返回报文可统
  • 网络线缆连接器和线槽

    一 信息插座 1 信息插座简介 信息插座是终端 工作站 与水平干线子系统连接的接口 在水平干线子系统中双绞线的两 端是直接压接到配线架和信息插座中的 不需要跳线 2 信息插座的配置 综合布线系统的设计 应该根据实际情况确定 所需信息插座个数
  • Pycharm配置优化

    优化python第三方库 优化界面 连接远程服务器 注意路径问题
  • 【华为OD统一考试B卷

    题目描述 3020年 空间通信集团的员工人数突破20亿人 即将遇到现有工号不够用的窘境 现在 请你负责调研新工号系统 继承历史传统 新的工号系统由小写英文字母 a z 和数字 0 9 两部分构成 新工号由一段英文字母开头 之后跟随一段数字
  • 一起学Docker:CMD与ENTRYPOINT的区别

    CMD CMD指令为启动的容器指定默认要运行的程序 程序运行结束 容器也就结束 CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖 类似于 RUN 指令 用于运行程序 但二者运行的时间点不同 CMD 在do
  • MQTT--Qt5编写MQTT-client客户端

    库的下载地址 https github com emqtt qmqtt 好不容易编译成功 于是写下经验 编译环境 桌面环境 Windows10 Qt5版本 开始 1 下载库文件 https github com emqtt qmqtt 2