天天看點

Qt5.9編譯MQTT錯誤解決辦法

本文主要總結Qt5.9在編譯MQTT3.1時,遇到的問題和對應的解決辦法。

一、我用上述的編譯環境建構時,出現了如下錯誤:

D:\1Project\Qt5project\qmqtt-master\src\mqtt\qmqtt_websocketiodevice_p.h:-1: Note: No relevant classes found. No output generated.

Qt5.9編譯MQTT錯誤解決辦法

二、解決辦法

2.1輕按兩下錯誤提示,将頁面中的将#include <QWebSocket>注釋調用,用#include <QtWebSockets/QtWebSockets>代替,如下圖所示。

Qt5.9編譯MQTT錯誤解決辦法

2.2輕按兩下qmqtt/src/mqtt節點下的mqtt.pro工程,用QT += websockets代替QMQTT_WEBSOCKETS: QT += websockets,如下圖所示:

Qt5.9編譯MQTT錯誤解決辦法

2.3删除生産的build-qmqtt-Desktop_Qt_5_9_3_MinGW_32bit-Debug檔案,如下圖所示:

Qt5.9編譯MQTT錯誤解決辦法

2.4重新建構後,沒有任何的錯誤和警告,同時生成了一個新的build-qmqtt-Desktop_Qt_5_9_3_MinGW_32bit-Debug檔案,改檔案就是我們需要的。

三、解決問題方法的思路

其實這個錯誤主要是由于#ifdef QT_WEBSOCKETS_LIB沒有正确調用導緻,因為版本不同,是以調用WEBSOCKETS檔案的調用方式不一樣。要想知道在自己的Qt版本中,WEBSOCKETS檔案是如何調用的,可以用Qt的幫助功能,如下所示:在Qt首頁的左下角,有一個【幫助】子產品,點選【幫助】子產品後,在【Look for】搜尋裡面,輸入WEBSOCKETS,在搜尋的結果中,選擇第一個Qt WbeSockets,則彈出如下畫面。通過下圖的函數調用講解,可以将上述遇到的WEBSOCKETS調用錯誤問題解決。

Qt5.9編譯MQTT錯誤解決辦法

繼續閱讀