Qt6.5.2 公式 MQTT ライブラリをインストールし、CMake を使用してコンパイルし、Qt で他のサードパーティ ライブラリをインストールする一般的なチュートリアル

Qt に MQTT ライブラリをインストールするために、たくさんのチュートリアルを読みましたが、その多くは Qt バージョンが古いか、説明があまり明確ではありませんでした。全体のプロセスは似ていますが、何も知らない初心者 (私のような) を扱うには、やはり次のように書く必要があります。プロセス全体。

目次

1.Qtをインストールする

2. Qt公式MQTTライブラリをダウンロードする

3. ローカル CMake コンパイル

4. Qt は QtMqtt モジュールをインストールします

1.binフォルダー

2. フォルダーを含める (その後の操作を伴う)

3.libフォルダー

4. mkspecs\modules フォルダー

5.モジュールフォルダー

6. インクルードフォルダーに対する後続操作

5. MQTTモジュールの使用

6. 補足: エンジニアリングプロジェクトでの Mqtt ライブラリのデプロイ

1.libフォルダー

2.インクルードフォルダー

3. ライブラリを追加する


1.Qtをインストールする

チュートリアルがたくさんあるので、ここでは詳しく説明しません。公式のダウンロード ルートを使用する場合は、オープン ソース バージョンを選択してください。公式ダウンロード Web サイトは 1 つのステップでアクセスできます:Qt OSS をダウンロード: Qt オンライン インストーラーを入手

ダウンロードするコンポーネントを選択する必要がある場合があります。次のブログを参照し、記事に従ってコンポーネントを選択します。 [Qt インストール チュートリアル (Qt 6.4)_A Sheep_ のブログ - CSDN ブログ]

2. Qt公式MQTTライブラリをダウンロードする

公式 github リポジトリ接続:qt/qtmqtt: MQTT プロトコル バージョン 3.1 および 3.1.1 を実装する Qt モジュール http://mqtt.org/ (github.com)

 ローカル フォルダにクローンを作成します。ファイル ディレクトリには中国語が含まれていないことが望ましい:

次に、git ブランチを Qt バージョンと同じブランチに切り替えます。ここでは 6.5.2 に切り替えます。

git branch -a # 查看所有分支,退出阅读按个Q键就行
git checkout remotes/origin/6.5.2  # 切换至6.5.2分支

3. ローカル CMake コンパイル

次に、Qt を使用してこのプロジェクトを開きます。 Qtを開いた後、「プロジェクトを開く」をクリックし、ファイルを選択するときに、クローンしたばかりの公式ライブラリにあるCMakeLists.txtを選択します。

次に、通常どおりプロジェクトを設定します。

 プロジェクトを開いたら、リリース ビルド モードに切り替えます。

 右下隅の進行状況バーが完了するのを待った後、左下隅にある小さなハンマーをクリックして構築します。

 ここではビルドにエラーはなく、ずっと緑色のライトが点灯していますが、実際、公式 Qt を普通にダウンロードしても基本的には問題ありません。

4. Qt は QtMqtt モジュールをインストールします

コンパイルが完了すると、コードと同じレベルのディレクトリに次のコンパイル フォルダーが表示されます。

 リリース サフィックスが付いたフォルダーを開き、Qt のインストール中に選択したインストール ディレクトリを開き、役に立つコンテンツをリリース ファイルに追加します。 Qt インストール ディレクトリに移行されます。私のインストール ディレクトリは次のとおりです: D:\Qt_code\6.5.2\mingw_64 (コードのあるフォルダーにインストールされている理由を尋ねるのではなく、スワイプで尋ねてください。)

1.binフォルダー

bin フォルダー内の Qt6Mqtt.dll ファイルを Qt bin フォルダーに移動します。

2. フォルダーを含める (その後の操作を伴う)

インクルード フォルダー内の QtMqtt フォルダー全体を Qt インクルード フォルダーに移動します。

QtMqtt フォルダーを開くと、多数のヘッダー ファイル (.h) が見つかりますが、ランダムにヘッダー ファイルを開くと、その内容は次のとおりであることがわかります。

#include "../../../qtmqtt/src/mqtt/qmqttauthenticationproperties.h"

これは実際にはインクルード ソース コード内にあります。これには問題があります。 後で変更しますので、今は心配しないでください。

3.libフォルダー

 lib フォルダーの内容を形式に従って Qt lib フォルダーに移動します。具体的には次のものが含まれます。

フォルダー: \lib\cmake\Qt6Mqtt → \lib\cmake

ファイル: \lib\pkgconfig\Qt6Mqtt.pc → \lib\pkgconfig

ファイル: \lib\libQt6Mqtt.a → \lib

ファイル: \lib\Qt6Mqtt.prl → \lib

4. mkspecs\modules フォルダー

両方のディレクトリの mkspecs フォルダを開き、mkspecs\modules 内のすべてのファイルを Qt インストール ディレクトリに移動します。

5.モジュールフォルダー

modules フォルダー内の Mqtt.json ファイルを Qt modules フォルダーに移動します。

6. インクルードフォルダーに対する後続操作

以前移動した include/QtMqtt のヘッダー ファイルに問題があると言いました。ヘッダー ファイルの 1 つをランダムに開いたところ、内容は次のとおりです。

#include "../../../qtmqtt/src/mqtt/qmqttauthenticationproperties.h"

これが含まれているので、対応するディレクトリに移動して何が起こっているかを確認してみましょう。

 開くとすぐに、ああ、それは私たちが複製したばかりの公式コードであることがわかりました。そこで、先ほどインクルードフォルダー内のヘッダーファイル (.h) をすべて本物のヘッダーファイルに置き換えました。元の間違ったインクルード フォルダーにあるヘッダー ファイルはすべて置き換えられます。私が使用しているバージョン 6.5.2 のヘッダー ファイルはすべて次のとおりです。

qmqttauthenticationproperties.h
qmqttclient.h
qmqttconnectionproperties.h
qmqttglobal.h
qmqttmessage.h
qmqttpublishproperties.h
qmqttsubscription.h
qmqttsubscriptionproperties.h
qmqtttopicfilter.h
qmqtttopicname.h
qmqtttype.h
qtmqttexports.h
qtmqttversion .h

この時点で、インストールプロセスは終了します。 

5. MQTTモジュールの使用

公式ドキュメント:Qt MQTT 6.5.2

あなたが私と同じで qmake を使用している場合は、QT += mqtt を .pro に追加するだけで使用できます。クローンを作成した公式コードには、開発中に参照できるいくつかのサンプルも含まれています。ディレクトリは qtmqtt\examples\mqtt です。

MQTT 通信を使用する場合は、プロキシを開かないでください。代理店を開くな!代理店を開くな! 私はこの問題に長い間悩んでいましたが、問題を見つけることができませんでした(悲しい)

6. 補足: エンジニアリングプロジェクトでの Mqtt ライブラリのデプロイ

ライブラリを Qt に直接インストールするだけでなく、Mqtt ライブラリをプロジェクトにデプロイすることもできます。簡単なプロセスは次のとおりです。

1.libフォルダー

デプロイする必要があるプロジェクトのフォルダーを開き、3 番目の手順でコンパイル後に生成された Release フォルダー内の lib フォルダー全体をプロジェクト フォルダーにコピーします。ここではランダムに「JsonSender」プロジェクトを選択しました。

2.インクルードフォルダー

まず、プロジェクト フォルダーに新しいインクルード フォルダーを作成します。​ 

次に、複製したソース コードを見つけて、qtmqtt/src/mqtt/ のようなディレクトリを見つけます。 (はい、このディレクトリは以前 [IV. 5] で作成したフォルダです。 「フォローアップ操作」にある include ディレクトリ) にあるすべてのヘッダー ファイル (.h) を、作成したばかりの include フォルダーにコピーします。

3. ライブラリを追加する

次に、Qt で作成したばかりのプロジェクトを開き、左側のプロジェクト フォルダーを右クリックして、[ライブラリの追加] をクリックします。

 ここでは外部ライブラリを選択します

ライブラリ ファイルに追加したコンテンツとインクルード パスを選択し、[次へ] をクリックして概要を入力し、[完了] をクリックします。

         

このようにして、プロジェクトのデプロイが完了しました。このプロジェクトの後半でこれを使用するときは、必要なだけ含めるだけで済みます。

おすすめ

転載: blog.csdn.net/m0_56942491/article/details/132516553