QT安装QtMqtt子模块
系统:Windows10
环境:QT5.12.9
源码下载和源码编译请参考:QT编译安装QtMqtt子模块,WIN平台,(云盘工程文件在本文最后)
编译完成后,我们将用到的文件夹如下:
include文件夹和src文件夹
然后我们将src文件夹下的mqtt文件夹全部复制到QT安装目录下,具体路径如右图所示,然后我们也将源码编译文件夹中的include下的文件复制到这个路径下
Qt/5.12.9/gcc_64/include/mqtt
lib文件夹
然后我们还要添加链接文件:需要用到的文件是编译文件中的lib文件夹
将共享库添加到该目录
将链接文件添加到bin目录中:
之后mqtt源码编译安装,我们仍然处于最后一个位置,这是编写win平台时错过的。 如果不操作这一步,你会发现找不到qmqtt模块,如右图所示:
mkspecs 文件夹
如果遇到这些情况,请按照右图将编译文件中的文件复制到相应目录下;
错误的改变
到这里就可以正常使用了,这里我们继续使用win平台安装模块的项目来编译;
这里第一个错误是因为这个项目是从win平台移植时使用的。 当时我们创建的文件夹是从qtmqtt文件home到QT安装目录下的include文件夹。 这次之后我们没有改这个文件夹的名字直接使用mqtt,所以第一个错误就是把qtmqtt改成mqtt来完成编译。 如果想更改mqtt源码编译安装,也可以直接更改qt安装目录中include文件夹下的mqtt文件夹的名称; 第二个报错会遇到和win平台一样的路径问题。 这里可以使用win平台原来的解决方案,替换成“”来引用。 另一种方法是包含刚才的 include/mqtt 文件。 将所有文件复制到上层目录include中,这样我们就不需要修改我们的代码了。
总结
虽然Linux平台下的子模块安装和windows平台下的安装特别有爱,只是将mingw编译器换成了gcc编译器,链接文件不同而已。 这就是两个平台的区别。 win平台下链接文件都是.dll,Linux平台下所有链接文件都是共享库.so的形式。