mqttClient编译记录

一、paho库

官网介绍:
paho分支介绍及下载
Paho MQTT C Client Library
Paho Asynchronous MQTT C Client Library
GitHub下载地址:
https://github.com/eclipse/paho.mqtt.c
https://github.com/eclipse/paho.mqtt.cpp

(一)paho.mqtt.c的编译
1、cmake的配置
第四讲:编译Paho C Windows客户端
基于paho.mqtt.c库实现QT封装调用
Windows10下VS2017编译MQTT C与编译MQTT C++
openssl下载:http://slproweb.com/products/Win32OpenSSL.html

2、问题的解决
build目录应该在源码目录下新建,不能到外面新建。install目录也在src下
CMake编译的VS工程,安装时遇到错误:error MSB3073: 命令“setlocal
还有一个找不到时paho-mqtt3as.lib的错误,一个是在项目属性里的链接器->输入->依赖项中将其中的s去掉,因为生成的库是paho-mqtt3as.lib;另一个是到CMakeList文件中查找mqtt3as,将其中的s去掉。

(二)paho.mqtt.cpp编译
第五讲:编译Paho C++ Windows客户端
VS2019编译MQTT库 C/C++(超详细,含示例工程)

1、解决错误:error in configuration process ,project files may be invalid
完美解决CMake时“could not find any instance of Visual Studio”的问题
受其启发,把cmake相关的两个组件安装上就可以了。

2、使用的错误
关于编译报错 error: cannot convert ‘const std::__cxx11::basic_string’ to ‘const char*’ 的处理


二、Qt的mqtt库

有两种:Qt MQTT和QMQTT。本人最终选择的是qmqtt。

Qt官方:Qt MQTT
EMQ第三方:QMQTT
Qt MQTT之服务器介绍
MQTT连接阿里云IoT(一)
MQTT连接阿里云IoT(二)
MQTT连接阿里云IoT(三)
MQTT连接阿里云IoT(四)
mqtt 客户端搭建 流程记录(通信猫)

(一)qmqtt编译过程
github下载:https://github.com/emqtt/qmqtt
下面将编译的过程记录如下:
1、在最外层的qmqtt.pro中加入,因为windows不支持gtest

load(qt_parts)
CONFIG += NO_UNIT_TESTS

2、在src/qmqtt/qmqtt.pro中加入

CONFIG += NO_UNIT_TESTS
CONFIG += QMQTT_WEBSOCKETS

3、编译生成
4、将生成目录中的lib文件夹和src目录下的mqtt文件夹拷入Qt工程目录。
(二)qmqtt库的使用
本人主要编译的是QMQTT,调用过程真是漫长,主要卡在m_client->connectToHost();调用了但一直没有连接上,没有触发connected信号,还报了Timer不能在子线程中调用什么的,一直以为是编译的有问题,其实是库的调用有问题,Debug调用的是Release库导致没有连接上。(编译时的debug和release,和生成的libQt5Qmqtt.a和libQt5Qmqttd.a什么关系?)

看了很多,最后是这篇文章给了我启发:QT 用第三方库来实现MQTT客户端
做了以下两步,能成功连接了(起作用的是第二步)。
第一步:

将编译生成的两个 xx.dll 文件,移动到 xxx.exe执行应用的同一目录下(为可执行文件添加动态链接库.dll)

第二步:(Debug程序不能使用Release库,各用各的)

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib/ -lQt5Qmqtt
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/ -lQt5Qmqttd
INCLUDEPATH += $$PWD/mqtt
DEPENDPATH += $$PWD/mqtt

(三)qmqtt使用例子
Qt实现MQTT客户端–MQTT调试助手(qmqtt)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值