我们在使用Qt开发做项目开发是时候, 经常会进行数据的跨平台传输, 就需要对数据进行序列化, 序列化的方式有很多, 现在项目开发最常用就是google公司开发的protobuf。今天传输播客老师就给大家详细讲解一下如何在Qt下编译以及使用protobuf。
准备工作
下载并安装Qt
QT的下载地址,建议使用5.7以上版本:https://download.qt.io/archive/qt/
选择MinGW 版本选择 next 即可完成安装。
下载cmake并安装
Cmake下载地址:https://cmake.org/download/
根据向导使用默认选项设置即可完成安装。
下载protobuf的源码
Protbuf源码下载地址:https://github.com/protocolbuffers/protobuf/releases
选择c++版本源码下载到本地,并解压缩
我这里将 压缩包下载到D盘根目录,并解压缩得到目录: D:\protobuf-3.11.4
生成protbuf库文件
cmake的设置与库的生成
找到编译的源为protobuf源码中的cmake文件夹,
之后建立输出目录,这里在D盘下创建输出目录output-project,即:D:\output-project,并将其设置为目标文件夹,在cmake中做如下设置:
然后点击configure按键,选择MinGW编译,默认的编译器即可,也就是QT自带的编译器,如图所示。
点击finish按键,开始配置,配置结束后,界面如下:
在列表中按照下图进行选择
点击Generate生成,如图所示。
生成结束后,我们发现D:\output-project文件夹中出现了makefile文件,如图所示。
进入D:\output-project文件夹,在该目录下按住shift然后鼠标右键弹出右键菜单,打开命令行窗口,也就是下边截图中的Powershell窗口
在命令行窗口中输入mingw32-make命令,开始编译源代码,如下图所示。
等待几分钟编译结束。
编译结束后,我们打开D:\output-project文件夹可以看到生成的库文件和protoc.exe。如下图所示。
在QT中配置protobuf
创建Qt项目,在项目的pro文件中添加如下设置:
protobuf的头文件目录和库目录说明:
- 根据上边的配置头文件在D:\protobuf-3.11.4\src目录中,头文件在源码目录的src目录中
- 动态库目录在D:\output-project中
- 动态库的名字为 libprotobuf.dll在指定的时候
- –L: 动态库的绝对路径
- –l:动态库的名字,需要掐头(lib)去尾(dll)