ProtoBuf 编译流程, 加Qt简单调用实操(附编译好的资源供下载)

不想太麻烦的朋友, 资源下载后直接到 "Qt使用"

https://download.csdn.net/download/halo_hsuh/12189839

  • 编译

编译生成libprotobuf.a库 和 protoc.exe程序

  1. 下载资源

(1) 下载 protobuf-cpp-3.11.4.zip的包

https://github.com/protocolbuffers/protobuf/releases

 

(2) 安装CMake, 使用此工具进行生成对应编译器的编译配置文件, 例如生成MinGw的Makefile

https://cmake.org/download/

 

 

(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. 生成配置文件

(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" 生成完整配置文件, 下图为最终生成的配置文件

 

  1. 编译

打开 "cmd" , 到目录xx\protobuf_build_mingw32下

(1) 输入指令 mingw32-make, 等待编译结果

 

(2) 编译结果

 

下图所见, 编译之后多出来了下面.a的静态文件, 和exe文件,保存和使用

 

 

二. Qt使用

  1. 生成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=./              

                        

  1. 创建Qt工程并且添加文件到项目

(1) 将protocbuf下的src目录拷贝到工程目录下

(2) 将编译生成的libprotobuf.a 放到工程目录下新创建的lib目录下

(3) 将生成的person.pb.cc 和 person.pb.h文件加到工程目录下

  1. 添加 2 中的文件到工程

 

  1. 代码

 

Note:

          1. bin目录 添加到系统环境变量中, 就可以全局调用 protoc.exe ;

           2. lib 里有工程每次需要包含的库libprotobuf.a;

           3. src 为每次工程需要包含的路径;

 

 

发布了16 篇原创文章 · 获赞 1 · 访问量 445

猜你喜欢

转载自blog.csdn.net/halo_hsuh/article/details/104490263