系统:Windows10
环境:QT5.12.9
源码下载和源码的编译请参考:QT编译安装QtMqtt子模块,WIN平台,(网盘工程文件在该文文末)
编译完成过后我们会使用到的文件夹有以下几个:
include文件夹和src文件夹
然后我们将src文件夹下的mqtt文件夹全部复制到QT的安装目录,具体路径如下图,然后我们将源码编译生成文件夹中的include下的文件也复制到这个路径里面
Qt/5.12.9/gcc_64/include/mqtt
lib文件夹
然后我们将链接文件也添加一下:需要用到的文件是编译文件中的lib文件夹
将共享库添加到这个目录
将链接文件添加到bin目录:
然后我们一直最后一个地方,上次在写win平台下的这个地方遗漏了,如果不操作这一步会出现找不到qmqtt模块,如下图:
mkspecs文件夹
如果遇到这种情况请将编译文件中的文件按照下图复制到对应目录;
错误修改
到这里正常情况下已经可以使用了这里继续沿用我们再win平台安装模块的工程来编译一下;
这里的第一个错误是因为这个工程是从win平台移植的时候用的,那个时候我们创建的文件夹是qtmqtt文件家到QT的安装目录下的include文件夹,然后这一次我们没有修改这个文件夹的名字直接用的是mqtt,所以第一个错误将qtmqtt改成mqtt即可完成编译,如果要修改的话也可以直接去修改qt安装目录下的include文件夹下的mqtt文件夹名字;然后第二个报错和win平台一样会遇到路径问题,这里可以使用先前在win平台的解决办法将<>换成""来引用,还有一种办法是将刚刚那个include/mqtt文件中的所有文件复制到上一级目录include这样就可以不用更改我们的代码了。
总结
其实Linux平台下的子模块安装和windows平台下的安装非常的相识,不过是将mingw编译器换成了gcc编译器而已,还有就是链接文件的不同,这是两个平台的不同点,在win平台下链接文件都是.dll,在Linux平台都是以共享库.so的方式链接文件。