编译qt mqtt模块

发布时间 2023-08-29 15:11:50作者: 北极熊129

0.  环境  win10, qt 6.3.1

1. 下载源代码
   mqtt:   https://github.com/qt/qtmqtt,  找到对应的tag, 比如:6.3.1,  然后下载.zip文件。
   perl:    https://strawberryperl.com,  选64位下载。

2. 安装perl, 安装完,在环境变量里加上perl的bin目录。如果不加,有可能 qt creator找不到perl.

3. 进入mqtt源码目录: d:\program\qt-mqtt\qtmqtt-6.3.1
    修改 .cmake.conf, 在最后添加一行, 这个是指定qt6的目录。
    set(CMAKE_PREFIX_PATH "D:/program/qt/6.3.1/mingw_64")

4. 编译
      打开qt creator,
      菜单 “文件”-> “打开文件或项目”,打开 d:\program\qt-mqtt\qtmqtt-6.3.1\CMakeLists.txt

5. 选 "Desktop 6.3.1 mingw 64位" -> Release, 如果没有问题。点左边绿三角号图标编译。

6. 编译好后,进行文件copy:   (会有一个红叉,说cmake脚本里没有一个executable, 因边是编译生成.a库,所以不需要executable,不用管它)
   源: D:\program\qt-mqtt\build-qtmqtt-6.3.1-Desktop_Qt_6_3_1_MinGW_64_bit-Release   这个qt 编译后自动生成的目录
   目的: D:\program\qt\6.3.1\mingw_64\,   如果生成的是vs2019的代码: D:\program\qt\6.3.1\msvc2019_64

   需要copy的文件和文件夹,放到目标文件夹对应的目录里:
   1.   bin\Qt6Mqtt.dll
   2.   include\QtMqtt  (目录)
   3.   lib\*
   4.   mkspecs\modules\*
   5.   modules\Mqtt.json   (可能没有这个,  QT += mqtt就不好用)

这样,新建一个工程, .pro文件里加上 QT += mqtt, 就不会报:Unknown module: mqtt 错误了。