关于linux系统下qt5.9 安装mqtt模块的问题
写在前头:在做大作业的时候需要在qt程序中写mqtt通讯模块,网上的教程都是windows下qt安装mqtt模块,和linux上有一些出入。
笔者在安装模块也遇到很多坑,在这里写一下自己遇到的问题和解决方法还有步骤。(笔者是个菜鸟,友好讨论,别骂我呜呜)
如有不足,欢迎指正。
笔者使用环境为:
ubuntu(虚拟机)14.04 64位
qt:
mqtt:下载
https://github.com/emqx/qmqtt
** 1.在qt中打开qmqtt这个项目:**
2.设置项目
3.查看文件夹粘贴相应的文件到qt中
3.1 头文件
打开include文件夹
复制位置:
将此文件粘贴复制到这个目录下
粘贴位置:再将整个mqtt文件夹复制
复制位置:
粘贴到 这个目录下
粘贴位置:
3.2 链接文件
将mqtt项目中的lib链接文件复制粘贴到qt中
复制位置:
粘贴位置:
ps:windows的模块安装教程都是.dll文件,而linux下是.so为此我搜到了如下解释:
linux .o,.a,.so
.o,是目标文件,相当于windows中的.obj文件
.so 为共享库,是shared object,用于动态连接的,相当于windows下的dll
.a为静态库,是好多个.o合在一起,用于静态连接
再将四个链接文件粘贴复制到qt的bin目录下
复制位置:粘贴位置:
3.3 modules
1复制位置:1粘贴位置:
2复制位置:
2粘贴位置:
至此全部粘贴完成。
使用时,在要添加的项目文件: xxx.pro中 添加:QT +=core gui qmqtt
使用mqtt的头文件编译则无问题
其中遇到的问题:
发现这是因为头文件的路径问题,
这里的include应该写为<qmqtt/qmqtt_global.h>
但是由于这种文件太多了
所以我的解决方法是将之前复制在include中的头文件全部复制一遍到上一级目录
这个目录中的.h文件:粘贴复制到上一级目录: