当前位置: 首页 > news >正文

外贸专业网站北京网站建设飞沐

外贸专业网站,北京网站建设飞沐,深圳几个区的分布图,html代码按钮文章目录 [toc]1、概述2、准备1.1 下载源码1.2 配置环境1.3 解释原理 3、编译4、验证5、参考6、视频 更多精彩内容👉内容导航 👈👉Qt网络编程 👈 1、概述 Qt默认是不包含mqtt库的,如果需要使用到mqtt库就只能自己编译配…

文章目录

    • @[toc]
    • 1、概述
    • 2、准备
      • 1.1 下载源码
      • 1.2 配置环境
      • 1.3 解释原理
    • 3、编译
    • 4、验证
    • 5、参考
    • 6、视频

更多精彩内容
👉内容导航 👈
👉Qt网络编程 👈

1、概述

  • Qt默认是不包含mqtt库的,如果需要使用到mqtt库就只能自己编译配置;

  • 网络所有的QtMqtt配置的文章都是编译完成手动复制,非常麻烦,对新手也非常不友好吗,容易漏了一些步骤;

  • 本文中主要说明windows下如何自动编译配置QtMqtt,无需手动拷贝、生成帮助手册

注意:

  1. 编译前需要安装perl,如果没有perl则编译后生成的头文件都是带.h后缀的。
  2. 工程里面需要有一个.git文件夹,否则不会指向perl。
  3. 如果不安装perl也可以编译,不过后续会出现部分报错,需要手动添加头文件。
  4. 只是Qt5需要安装perl,Qt6不需要。

演示环境:

环境版本
系统windows11
Qt5.14.2
QtMqtt5.14.2
编译器mingw73_64、msvc2017_64

2、准备

1.1 下载源码

  • 命令行下载源码:下载完成后选择QtMqtt版本,与Qt版本相同或者相近;
git clone https://github.com/qt/qtmqtt.git
git clone http://code.qt.io/qt/qtmqtt.git
git clone https://code.qt.io/qt/qtmqtt.gitgit tag   # 查看分支
git checkout 5.14.2  # 切换分支
  • 浏览器下载源码:

在这里插入图片描述

1.2 配置环境

windows安装perl有几种方式,可以任意选择一种安装。

方法1:

  • qt-opensource-windows-x86-5.14.2.exe离线安装包中内置了perl,不过需要在安装时勾选,安装完成Qt后再手动安装;
  • 如下图所示,离线安装时勾选Strawberry Perl

在这里插入图片描述

  • 安装完成后进入安装路径下D:\Qt\Qt5.14.2\Tools\Perl52213_32,就可以看见perl安装包了,然后运行perl安装包进行安装就可以。

方法2:

  • 进入perl官网或者github下载;
    • Perl Download - www.perl.org
    • Releases · StrawberryPerl/Perl-Dist-Strawberry
  • 其中的strawberry 为开源免费版本;
  • 提供了zip压缩包版本和msi安装程序版本;
  • 不过体积都比较大,这里下载一个轻便版本的strawberry-perl-5.40.0.1-64bit-portable.zip
  • 解压后如下图所示;

在这里插入图片描述

  • 然后打开环境变量,点击path,添加perl/bin文件夹路径到环境变量;

在这里插入图片描述

  • 保存关闭后,打开cmd窗口,检查perl是否生效;

在这里插入图片描述

1.3 解释原理

  • Qt编译QtMqtt模块可以使用perl也可以不使用,使用perl在这里主要是为了生成不带.h后缀的头文件,并且自动拷贝头文件到Qt安装路径下;
  • 如果不安装perl就需要手动拷贝QtMqtt头文件,并且在后续使用QtMqtt过程中只能使用带.h后缀的头文件,例如:
#include <qmqttclient.h>  // 正常
#include <QMqttClient>    // 报错
  • 不安装perl的编译方式;
  • 然后我们打开src/mqtt/mqtt.pro文件,在文件最下面有一行load(qt_module)代码,这行代码就是用来构建模块的;

在这里插入图片描述

  • 进入qt_module.prf文件后,有一行load(qt_build_paths)代码;

在这里插入图片描述

  • 再进入qt_build_paths.prf 文件,可以看出文件中会判断构建的源码工程下是否有.git文件夹,如果存在.git文件夹就会执行CONFIG += git_build配置;

在这里插入图片描述

  • git_build配置位于qt_module_headers.prf文件中,如下图所示,git_build就是调用perl syncqt.pl脚本的配置;

在这里插入图片描述

  • 所以,默认情况下QtMqtt源码文件夹下必须有一个**.git** 文件夹,否则不会调用perl

在这里插入图片描述

  • 使用git clone 下载的源码都带有.git文件夹,如果是直接在浏览器下载的就没有,这里有两个解决办法;
    1. 在源码文件夹下创建一个.git文件夹;
    2. 将qt_build_paths.prf文件中21行注释掉。

在这里插入图片描述

3、编译

  • qtmqtt.pro 文件使用qtcreator打开,然后选择编译器,在设置完编译器之后就会自动在build文件夹下生成头文件;(如果perl升序就不会生成头文件)

在这里插入图片描述

在这里插入图片描述

  • 如下图所示会显示执行perl的日志信息。

在这里插入图片描述

  • 添加编译配置;

    • 选择【项目】【构建】【添加构建步骤】【make】;

    在这里插入图片描述

    • 第一个:在make参数项添加docs,用于生成帮助手册;(只需要执行一次)
    • 第二个:在make参数项添加install_docs,用于自动安装帮助手册;(只需要执行一次)
    • 第三个:在make参数项添加install,用于自动安装编译好的qtmqtt;
    • 注意: 由于帮助手册是安装到公共路径,而其它头文件、动态库是安装到编译器路径下,所以如果给多个编译器配置时docs、install_docs只需要配置一次,而install每个编译器都需要配置。

在这里插入图片描述

  • 编译报错:是因为使用mingw32-make.exe install安装报错如下所示,这是因为QtMqtt源码放的位置不对;
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\qmake.exe -install qinstall E:\test\qtmqtt\build\MinGW730_64-Debug\include\QtMqtt\qtmqttversion.h D:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtMqtt\qtmqttversion.h
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\qmake.exe -install qinstall E:\test\qtmqtt\build\MinGW730_64-Debug\include\QtMqtt\QtMqttVersion D:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtMqtt\QtMqttVersion
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\qmake.exe -install qinstall E:\test\qtmqtt\build\MinGW730_64-Debug\include\QtMqtt\QtMqtt D:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtMqtt\QtMqtt
mingw32-make[3]: Leaving directory 'E:/test/qtmqtt/build/MinGW730_64-Debug/src/mqtt'
mingw32-make[2]: *** [Makefile:55: debug-install] Error 2
mingw32-make[2]: Leaving directory 'E:/test/qtmqtt/build/MinGW730_64-Debug/src/mqtt'
mingw32-make[1]: *** [Makefile:62: sub-mqtt-install_subtargets] Error 2
mingw32-make[1]: Leaving directory 'E:/test/qtmqtt/build/MinGW730_64-Debug/src'
mingw32-make: *** [Makefile:64: sub-src-install_subtargets] Error 2
15:13:40: 进程"D:\Qt\Qt5.14.2\Tools\mingw730_64\bin\mingw32-make.exe"退出,退出代码 2 。
Error while building/deploying project qtmqtt (kit: MinGW730-64)
When executing step "Make"
  • 如下所示,将qtmqtt源码放到D:\Qt\Qt5.14.2\5.14.2\Src路径下;名称影响。

在这里插入图片描述

在这里插入图片描述

  • 然后使用点击构建,构建完成后就会自动将编译生成的所有文件安装到Qt路径下,这里使用mingw73_64编译器就会将编译生成的文件安装到下面路径了,不需要手动拷贝。
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\include\QtMqtt
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin\Qt5Mqtt.dll
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\mkspecs\modules\qt_lib_mqtt.pri
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\mkspecs\modules\qt_lib_mqtt_private.pri
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib\libQt5Mqtt.a
D:\Qt\Qt5.14.2\Docs\Qt-5.14.2\qtmqtt.qch

在这里插入图片描述

4、验证

  • 将qtmqtt\examples\mqtt路径下的示例工程复制 出来,使用qtcreator打开进行编译。
  • 如果不复制到qtmqtt工程外,可能无法编译,错误如下所示,工程中文件呈现灰色。
Project ERROR: You cannot build examples inside the Qt source tree, except as part of a proper Qt build.

在这里插入图片描述

  • 将示例程序复制 出来后就编译正常了。(如果没有使用perl,这里编译会显示找不到#include <QMqttClient>文件)

在这里插入图片描述

  • 编译成功后如下所示:

在这里插入图片描述

  • 使用qtmqtt只需要在pro文件中添加QT += mqtt就可以引入。

在这里插入图片描述

5、参考

  • qt/qtmqtt.git - Qt Module to implement MQTT protocol version 3.1 and 3.1.1 http://mqtt.org/
  • GitHub - qt/qtmqtt: Qt Module to implement MQTT protocol version 3.1 and 3.1.1 http://mqtt.org/
  • Perl Download - www.perl.org
  • Releases · StrawberryPerl/Perl-Dist-Strawberry

6、视频

windows下全网最详细、最简单的QtMqtt编译配置教程;



http://www.yayakq.cn/news/337551/

相关文章:

  • 江都建设集团有限公司官方网站星月教你做网站回顾文档
  • 海洋网站建设公司中国沈阳网站在哪里下载
  • 做网站可以卖别的牌子的产品吗小说网站开发猪八戒
  • android 网站模板vue做前台网站
  • 怎么做报名网站如何选择网站模板
  • 货运代理东莞网站建设网站开发创新点
  • 关于政务网站建设昆明网站建设优化图片
  • 上海徐汇区网站建设龙岗网站建设服务
  • 东莞网站建设seo彩票网站开发制作模版
  • 住房新建网站北京专业网站制作流程优势
  • 电子商务网站建设合同标准范文达濠市政建设有限公司网站
  • 手机网站制作方法关于做网站常见的问题
  • 蓬莱做网站那家好查企业联系方式的app软件有哪些
  • 万网有网站建设吗中国销售网
  • 做网站需要学jq吗hao123网址导航官网
  • 静态网站策划书做网站的体会
  • 网站是可以做的吗品牌建设计划书
  • 深圳市住房和建设局网站登录国外优秀创意的个人网页设计欣赏
  • 一个主机一个域名做网站深圳app开发工作室
  • 专门做外包的网站怎么申请公司网站
  • 沭阳网站建设上海市政网网址
  • 电子商务网站建设与管理课件可拖拽编程网站开发
  • 中国建设网官方网站企业登录做网站含营销
  • 大型房产网站模板做新零售这些注册网站和找货源
  • 福州网站制作网站创造网站需要多少钱
  • 企业网站seo 优帮云seo是什么意思电商
  • 深圳网站建设 设计卓越迈网上做试卷的网站
  • 网站推广的方式有怎么提高自己网站的知名度
  • 做一个中英文网站的价格长沙网站推广运营
  • 下载百度官方版国内seo服务商