我们在使用Qt开发做项目开发是时候,经常会进行数据的跨平台传输,就需要对数据进行序列化,序列化的方式有很多,现在项目开发最常用就是google公司开发的protobuf。今天就给大家详细讲解一下如何在Qt下编译以及使用protobuf。
准备工作
下载并安装Qt
QT的下载地址,建议使用5.7以上版本
选择MinGW版本选择next即可完成安装。
下载cmake并安装
根据向导使用默认选项设置即可完成安装。
下载protobuf的源码
选择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)