1. 程式人生 > >windows下QT5.7.1如何編譯MQTT客戶端

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中的圖片進行比較。

編譯完成後目錄

 

lib資料夾下內容

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"
新增外部庫步驟1

     

新增外部庫步驟2

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客戶端的編譯工作就完成了。