Qt6.3.1 编译 qtmqtt

发布于:2022-12-31 ⋅ 阅读:(500) ⋅ 点赞:(0)

第一次使用qt6,之前都是用qmake,qt6之后开始使用cmake,这里也学习一下cmake,

编译qtmqtt源码有两种方法。

方法一:命令行编译

1.下载qtmqtt源码

放在这个路径下

 2.创建build文件夹,存放产生的编译文件

 3.进入到创建的build目录

在命令行输入 cd C:\Users\50678\Downloads\qtmqtt-build 进入到构建目录

C:\Qt6\6.3.1\mingw_64\bin\qt-configure-module.bat C:\Users\50678\Downloads\qtmqtt

用qt自带的qt-configure-module.bat构建qtmqtt模块,后面跟源码路径,即我们第一步创建的源码目录。

回车。

这里可能会报错,找不到cmake,找不到najin,没有指定cxx编译器之类的,所有原因都是环境变量没配好。

如图所示,配置cmake环境,ninja环境,MinW环境(gcc,g++),perl环境,再后面的4行是cmd.exe的环境。因为我一小心误删了系统的环境变量,这些都是遇到错误一个个加的。 

4,使用cmake构建

cmake --build .

cmake --install . --verbose 安装编译好的mqtt模块,其实就是把编译出的文件打包,便于复制到qt路径中使用。

可能会提示没有权限,以管理员身份运行命令提示符就好了。

 我第一次安装它是安装在了C盘program file下面,又运行了一次,直接写到了qt下面,真不错,琢磨一下cmake应该可以找到的。

接下来就能正常使用mqtt了。运行一下示例程序。

成功订阅到消息!

方法二:使用QT Creater构建 

1,打开qtmqtt项目

刚打开可能会报错,打开好像直接执行cmake了吧,提示perl不可用,配置完环境变量即可,参考方法1,不过这里是在qt creater中配置,如果你的path里面没有的话 

然后再执行cmake就不后报错了。

cmake成功后,直接构建

非常顺利,构建成功,下一步就是打开构建目录,把构建好的库文件之类的复制到qt目录下,即方法1的最后一步,注意这里手动复制一定不要漏文件。 

下一步就是编译安卓平台的mqtt,过程都是一样的,换个编译器而已。

安卓里面有个坑。

qt.toolchain.cmake 中存放的Android sdk路径要填写自己的

toolchain路径也要填自己的

修改qt.toolchain.cmake 
set(__qt_initially_configured_toolchain_file "C:/Users/50678/AppData/Local/Android/Sdk/ndk/22.1.7171670/build/cmake/android.toolchain.cmake")
if (NOT DEFINED ANDROID_SDK_ROOT)
    set(ANDROID_SDK_ROOT "C:/Users/50678/AppData/Local/Android/Sdk" CACHE STRING "")
endif()

本文含有隐藏内容,请 开通VIP 后查看