一、环境
ubuntu20.04
Qt5.14.2
找到对应qt版本的mqtt库,可以直接git clone下最新的,再切换分支到对应版本,也可直接下载对应分支,我选择直接下载对应版本的mqtt库。
我是在我windows系统下下载的,所以还要将文件夹移动到我虚拟机中的ubuntu20.04中。
三、查看当前环境是否符合要求
编译这个源码需要安装perl,否则会报错:perl 不是内部或外部命令,也不是可运行的程序。
先查看自己系统内是否安装了perl,我的系统是自带的,通过以下命令查询perl版本信息:
perl -v
如果有安装,会有具体版本信息,如果没有,请先安装,参考文章:Ubuntu20.04安装Perl5.20.2_ubuntu安装perl-优快云博客
四、编译MQTT源码
源码涉及到有几个头文件路径有问题,得找到你下载的mqtt源码路径下src文件,并将这个文件下的所有.h文件复制到你安装的qt编译器目录的include文件下,在include文件下创建一个QtMqtt文件,并手动或者通过参考以下命令(命令路径修改为自己的),将.h文件复制过去(前提是你的qt已经配置好编译器环境)。
cp /home/xxxx/qtmqtt-5.14.2/src/mqtt/*.h /home/xxxx/Qt5.14.2/5.14.2/gcc_64/include/QtMqtt
然后我们在qtmqtt.pro所在路径下打开一个终端,执行以下命令(qmake路径修改为自己的安装路径):
/home/userlpe/Qt5.14.2/5.14.2/gcc_64/bin/qmake qtmqtt.pro
如果全程没有红色报错,表示qmake成功。
如果将qt的编译器的路径写入到ubuntu系统的环境中,直接使用qmake即可,可以不用绝对路径,参考下面文章最后的配置环境:
Ubuntu20.04.6 安装Qt5.14.2并初步配置开发环境-优快云博客https://blog.youkuaiyun.com/weixin_68442019/article/details/145115738?spm=1001.2014.3001.5502然后执行make 以及make install 命令
make
make install
到这里我们的源码编译成功。同时已经将mqtt安装到了qt中。我们使用,只需要再工程文件下,添加上mqtt模块即可
QT += mqtt
我们直接使用官方库中的例子来验证一下:
通过qt creator打开例子中的一个工程
打开后,例子中的头文件要修改一下,
修改后运行一下,去找一个可用的公共服务器,参考文章:国内外免费公用mqtt测试服务器推荐_免费mqtt服务器-优快云博客
有的用不了,多试几个,将网站填写到Host,点击connect,能连上后,点击订阅"Subscribe",然后我们点击发布"Publish",我们可以看到我们订阅的主题传来的消息。
到此,ubuntu20.04下Qt5.14.2的mqtt库安装完成,其他版本大抵如此,待验证。