windows下QT5.7.1如何編譯MQTT客戶端
本文主要講述在windows平臺下QT5.7.1如何編譯MQTT客戶端,讓大家避免我走過的一些彎路。具體MQTT的使用後續會進行更新。
一. 下載原始碼
一般需要在github或者其它地方下載MQTT客戶端的原始碼,一般都可以下到,這裡附上鍊接: https://github.com/emqtt/qmqtt
注意,此原始碼必須使用QT5.3以上版本編譯。
二. 編譯MQTT庫
1. 下載完成後,解壓qmqtt-master.zip資料夾,會看到如下目錄:
原樣解壓後,此目錄下無lib以及include目錄。
2. 進入上圖所示的src資料夾,用QT5.7.1開啟src.pro工程,選擇release模式,注意勾選掉shadow build選項,如下圖所示:
3. 進行編譯,編譯完成後,會在原始解壓根目錄下生成lib資料夾與include資料夾,如下圖所示,可步驟1中的圖片進行比較。
4. 將生成的lib資料夾以及src目錄下的mqtt資料夾全部拷貝到要使用MQTT服務的工程下,比如此處我拷貝到了我自己的測試程式目錄下。mqtt資料夾下主要包含的是所需要的MQTT標頭檔案,lib為所需要的MQTT庫檔案。
5. 新增標頭檔案qmqtt.h。在工程中新增剛才複製過來的mqtt資料夾下的qmqtt.h標頭檔案,只需要新增這一個標頭檔案即可
6. 新增庫檔案。選擇新增庫-外部庫,然後選擇剛才複製過來的lib資料夾下的libqmqtt.a和libqmqttd.a兩個庫,都新增到工程中。同時,在pro檔案中增加標頭檔案絕對路徑: 如下程式碼為示例,增加後,可在自己的程式碼中直接引用MQTT標頭檔案。
INCLUDEPATH +="F:\studysoftware\QT5\QT5.7.1\testMQTT\mqttText\mqtt"
7. 至此,所有的步驟均已完成。在測試程式碼中,完成對MQTT類的引用,如測試程式碼所示:
#include "widget.h"
#include <QApplication>
#include "qmqtt.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMQTT::Client *client = new QMQTT::Client();
client->setClientId("ClientId");
client->connectToHost();
Widget w;
w.show();
return a.exec();
}
8. 至此,QT使用MQTT客戶端的編譯工作就完成了。