6步!教你寫一個mqtt調(diào)試助手
時間:2021-10-22 15:35:12
手機看文章
掃描二維碼
隨時隨地手機看文章
[導(dǎo)讀]點擊上方“小麥大叔”,選擇“置頂/星標(biāo)公眾號”福利干貨,第一時間送達大家好,我是小麥,之前寫過一篇MQTT的文章,里面用來測試的mqttclient程序是自己編譯的。可以參考上一篇文章《MQTT協(xié)議,終于有人講清楚了》。在這篇文章里我簡單總結(jié)了如何基于Qt的Mqtt庫,編譯一個m...
點擊上方“小麥大叔”,選擇“置頂/星標(biāo)公眾號”福利干貨,第一時間送達
大家好,我是小麥,之前寫過一篇MQTT的文章,里面用來測試的mqtt client程序是自己編譯的??梢詤⒖忌弦黄恼?span>《MQTT協(xié)議,終于有人講清楚了》。在這篇文章里我簡單總結(jié)了如何基于 這個庫是基于MQTT V3.1和V3.1.1實現(xiàn)的,這里要注意協(xié)議版本。 如上圖所示,這里有很多分支;這里我測試 下面,簡單羅列一下,整體的環(huán)境;QT版本: 然后將qtmqtt-5.12.10路徑下的文件復(fù)制到 總結(jié)一下上述的過程,具體如下圖所示; 具體的實際路徑要根據(jù)自己的安裝情況為主。這時候我們重新回到qtmqtt-5.12.10路徑下,打開 這里可以編譯成Debug和Release模式,編譯成功之后就可以找到 復(fù)制DLL庫和lib庫 將lib文件夾的文件復(fù)制到 這時候,我們可以打開 這時候已經(jīng)可以進行編譯了,但是會發(fā)現(xiàn)有還兩個報錯情況:第一個報錯信息如下: 將 原因是頭文件無法找到,做出如下修改; 這里可以通過修改 代碼已經(jīng)上傳到
星標(biāo)公眾號,后臺回復(fù)【MQTT】,即可獲取。
—— The End?——
推薦好文??點擊藍色字體即可跳轉(zhuǎn)??狀態(tài)機的三種騷操作,值得你了解
??推薦一個直接用于項目開發(fā)的PID庫!很好用,很穩(wěn)定??這14種嵌入式實時系統(tǒng),你用過哪些???推薦一款我私藏已久的串口示波神器
歡迎轉(zhuǎn)發(fā)、留言、點贊、分享給你的朋友,感謝您的支持!
點擊上方名片關(guān)注公眾號
分享???點贊???在看????以“三連”行動支持優(yōu)質(zhì)內(nèi)容!
大家好,我是小麥,之前寫過一篇MQTT的文章,里面用來測試的mqtt client程序是自己編譯的??梢詤⒖忌弦黄恼?span>《MQTT協(xié)議,終于有人講清楚了》。在這篇文章里我簡單總結(jié)了如何基于
Qt
的Mqtt
庫,編譯一個mqtt client
.Qt開發(fā)MQTT程序有兩種方式;- Qt官方已經(jīng)提供了基于MQTT的封裝,但是并沒有正式加入到Qt的標(biāo)準(zhǔn)庫中,需要自己進行編譯添加;
- 基于第三方EMQ開發(fā)的MQTT接口;
https://github.com/qt/qtmqtt
6.2
這個版本,它需要通過CMake
對項目進行構(gòu)建,但是發(fā)現(xiàn)這個版本的MQTT需要QT 6 以上的版本才行,具體報錯信息如下圖所示:Qt5.12.11
MQTT庫版本:5.12.10
整體環(huán)境:Win10
QtCreator
MinGW-W64
編譯QtMqtt庫
D:\Qt\Qt5.12.11\5.12.11\mingw73_64\include
在Qt的安裝目錄下新建QtMqtt
文件夾;D:\Qt\Qt5.12.11\5.12.11\mingw73_64\include
路徑下;qtmqtt.pro
,就可以進行編譯了;Qt5Mqtt.dll
和Qt5Mqttd.dll
;simple mqtt client
項目進行測試了,路徑如下所示;Unknown?module(s)?in?QT:?mqtt
無法識別mqtt模塊;解決方案如下:qt_lib_mqtt.pri
文件和qt_lib_mqtt_private.pri
復(fù)制到Qt的安裝路徑下的mkspecs\modules
路徑中即可,例如我的電腦上的路徑是D:\Qt\Qt5.12.11\5.12.11\mingw73_64\mkspecs\modules
;mingw73_64
是我具體使用的工具鏈,這里要根據(jù)實際使用的工具鏈進行選擇。第二個報錯信息如下:QMqttClient?does?not?exist
//#include?
#include?
再次編譯運行,程序可以正常運行。簡單總結(jié)一下:- 庫版本和位置是否放置在相應(yīng)編譯工具鏈目錄下。
- 頭文件是否對應(yīng)到類名文件,并放置到編譯工具鏈目錄下。
- modules-inst下的pri文件是否放置到編譯工具鏈目錄的相應(yīng)目錄下, QT =mqtt 能否正常工作都依賴目錄里的pri文件。
cmd.ini
文件進行配置主機地址,端口,以及需要發(fā)送的Topic
和Message
的內(nèi)容;注意:cmd.ini必須和可執(zhí)行文件處于同一路徑下;
Github
,目前功能比較簡單,不支持設(shè)置QoS
,支持文本格式數(shù)據(jù)接收,不支持遺囑消息,感興趣的同學(xué)可以看一下,地址如下:https://github.com/hotsauce1861/mqtt-client-debug-helper.git
如果大家更好的推薦,可以在下方留言區(qū)積極討論。另外我編譯了一個可執(zhí)行程序;星標(biāo)公眾號,后臺回復(fù)【MQTT】,即可獲取。
—— The End?——
推薦好文??點擊藍色字體即可跳轉(zhuǎn)??狀態(tài)機的三種騷操作,值得你了解
??推薦一個直接用于項目開發(fā)的PID庫!很好用,很穩(wěn)定??這14種嵌入式實時系統(tǒng),你用過哪些???推薦一款我私藏已久的串口示波神器
歡迎轉(zhuǎn)發(fā)、留言、點贊、分享給你的朋友,感謝您的支持!
分享???點贊???在看????以“三連”行動支持優(yōu)質(zhì)內(nèi)容!