前言
这方面的资料,网上还是挺多的,但是在移植过程我也还是踩了不少的坑,谨以此篇。记录我的学习过程,同时也希望给大家一些启发。
准备工作
QT-MQTT库:https://github.com/qt/qtmqtt/tree/v5.14.2(各个版本都有,大差不差,自己下载就好了)
移植
第一步:放头文件
解压得到(建议放到一个专门的路径,别乱放,因为后续继续用mqtt的话,这个库编译出来的东西不能删)一个文件夹,跟着路径找到18个.h文件,复制。
跟着QT的安装位置找到这里,框起来部分为你电脑下的qt编译器,你经常用哪一个就打开哪一个(PS:先备份最好)。我这里习惯用73_32这个,我以他为演示。
继续跟着目录找到这里,创建一个QtMqtt的文件夹,把刚刚复制的18个头文件放进去。
然后回到你下载mqtt库的目录位置。
第二步:编译
打开。
这里选用的编译器要和你移植的编译器一样,用debug模式。
然后点绿色小三角,编一下,耐心等待。
第三步:移植编译文件
编译完成后会在你mqtt的库文件生成一个编译文件,打开。
开始移植(以下所有操作的目标路径都是你要移植的编译器文件夹内,即先前移植头文件的那个路径)
1、图左的bin文件夹内的文件,放到图右的bin文件夹内。
2、图左的lib文件夹内这四个文件夹放到lib文件夹内。
3、图左lib->pkgconfig文件夹内的一个文件,放到图右lib->pkgconfig文件夹内。
4、图左mkspecs->modules文件夹内的一个文件,放到图右mkspecs->modules文件夹内。
操作完成后,移植已经完成80%了。
特别提醒,由于mqtt库被调用时,还会有依赖文件会调用下图,文件夹内的文件(即你编译mqtt库的产出物)所以,不要删除和移动这个库任何东西,如果移动了,重复第二第三步的操作。否则,在.pro文件内引用mqtt的时候会显示丢失库。(这个细节很多教程都没有提到,这里我吃了个大亏)。
测试
把这个文件拉出来。
选用你刚刚移植的编译器。
这里很多的头文件引用都有问题,需要我们修改把它改成这种格式,根据我们移植的头文件的文件名来引用。(可以先编译一次,跟着错误找,主要集中在mainwindows.h和.cpp)。
改完以后0错误,启动成功。(引用记得在.pro文件内加上 QT += mqtt)
结语
如果是自己写工程的话,稍微学习一下相关语法还是很简单的。接下来,在我的项目完结后,我会陆续更新相关教学。
这是我目前做的一个mqtt项目实现的功能,虽然比较简单,但是还是很实用的,大家可以期待一下(下位机是一个51)。