不想太麻烦的朋友, 资源下载后直接到 "Qt使用"
https://download.csdn.net/download/halo_hsuh/12189839
- 编译
编译生成libprotobuf.a库 和 protoc.exe程序
- 下载资源
(1) 下载 protobuf-cpp-3.11.4.zip的包
https://github.com/protocolbuffers/protobuf/releases
(2) 安装CMake, 使用此工具进行生成对应编译器的编译配置文件, 例如生成MinGw的Makefile
(3) 安装zlib, 编译过程中使用到zlib的库, 提前进行安装
http://gnuwin32.sourceforge.net/packages/zlib.htm
下载完毕之后直接安装
(4) 本例使用Qt5.16.2 中安装的Mingw32-make, 需要提前设置到系统环境
D:\SoftwareInstall\Qt\Qt5.12.6\Tools\mingw730_32\bin
- 生成配置文件
(1) 解压 protobuf-cpp-3.11.4.zip
(2) 打开CMake界面, 如下
(2) "Browse Source…" 选择目录XXX\protobuf\cmake
(3) "Browse Build…" 选择你自己创建的配置保存目录, 例: XXX\protobuf_build_mingw32
(4) "Configure"选择生成的配置文件
(5) 勾选
(6) "Generate" 生成完整配置文件, 下图为最终生成的配置文件
- 编译
打开 "cmd" , 到目录xx\protobuf_build_mingw32下
(1) 输入指令 mingw32-make, 等待编译结果
(2) 编译结果
下图所见, 编译之后多出来了下面.a的静态文件, 和exe文件,保存和使用
二. Qt使用
- 生成cpp文件
(1) 创建person.proto文件, 内容如下
syntax = "proto3";
package Tester;
option optimize_for = LITE_RUNTIME;
message Person
{
string Name = 1;
string Id = 2;
string Sex=3
int32 Age= 4;
}
(2) 生成cpp文件
./protoc.exe person.proto --cpp_out=./
- 创建Qt工程并且添加文件到项目
(1) 将protocbuf下的src目录拷贝到工程目录下
(2) 将编译生成的libprotobuf.a 放到工程目录下新创建的lib目录下
(3) 将生成的person.pb.cc 和 person.pb.h文件加到工程目录下
- 添加 2 中的文件到工程
- 代码
Note:
1. bin目录 添加到系统环境变量中, 就可以全局调用 protoc.exe ;
2. lib 里有工程每次需要包含的库libprotobuf.a;
3. src 为每次工程需要包含的路径;