protobuf release_protobuf在C++下的安装使用

本教程使用的系统是64位的win10系统,IDE用的是Visual Studio 2017 Enterprise

一、代码和工具下载

1.Protocol Buffers v3.8.0:

https://github.com/protocolbuffers/protobuf/releases/tag/v3.8.0

这里我们编译的是C++版本,所以只需要 protobuf-cpp-3.8.0.zip 即可

746dfbb1-081e-4b42-9218-71d803d6371a

图1

2.CMake v3.14.5:

https://cmake.org/download/

这里我们使用最新的64位版本 cmake-3.14.5-win64-x64.msi,下载完后直接安装即可

10d84d86-b955-4a84-9dab-3c2e8aecc29b

图2

二、生成protobuf的vs工程文件

1. 新建protobuf目录

用来存放下载好的代码和软件,整个目录结构最好是全英文的。

E:protobuf

protobuf-cpp-3.8.0.zip 直接解压到这个目录下

E:protobufprotobuf-3.8.0E:protobufprotobuf-3.8.0src 这里是C++部分

这个目录里面就是protobuf的源代码

2. 新建protobuf_build_2017_x64目录

用来存放 protobuf 的 visual studio 工程文件

E:protobufprotobuf_build_2017_x64
cb147221-6218-431e-91a8-f29df297ddce

图3

3. CMake 生成 protobuf 的 vs 工程文件

  • 打开CMake软件
  • 在“Where is the source code” 项后填入 E:protobufprotobuf-3.8.0cmake
  • 在“Where to build the binaries” 项后填入 E:protobufprotobuf_build_2017_x64
c57adcc2-6389-4094-b635-8010c8e2421b

图4

  • 点击Configure 按钮,打开界面
383896e629064176a235e3d014e76994

图5

  • 在“Specify the generator for this project” 选项中选择“Visual Studio 15 2017”
  • 在“Optional platform for generator” 选项中选择“x64”
  • 在“Optional toolset to use” 这个选项上不填为空
  • 选择“Use Default native compilers”
  • 点击 Finish 按钮
daacc1c1-4d08-4bb4-8e48-c6c1773ef8ab

图6

  • 如上图所示,可能会出现警告信息,但是只要没有error信息就可以,出现“Configuring done”表示配置成功
  • 点击Generate按钮,出现“Generating done”表示工程文件生成成功。
  • 然后点击Open Project按钮即可打开 protobuf.sln 工程
82d0a588122b411181ce34d99d069b12

图7

三、protobuf工程编译

7f0f0f9eb9f841b2ad3c41042f257baa

图8

从上图可以看到protobuf包含了很多工程,我们自己用的主要就是libprotobuflibprotocprotoc这三个,你可以只编译这三个,也可以全部编译,还可以选择Debug和Release版本。

Debug版本结果:

065e066a-d55f-4cfe-80bb-2cf7f0434c24

图9

Release版本文件:

e7a6d37504394f04a195c8e266c22c19

图10

可以看到Debug版本和Release版本的文件名是不同的。

到了这一步,protobuf的编译全部结束了,接下来说如何使用它们。

特别注意:如果你编译的是Debug版本,那么你自己的工程也得是Debug版本,否则会出错,同理如果是Release版本,那么你的工程也必须是Release版本使用。

在第五部分问题解答里,有这个问题的答案

四、protobuf的使用

  1. VS2017 新建一个空的C++控制台项目,命名为 ProtobufTest
  2. 在工程目录下新建 proto_filelibinclude 三个文件夹。如图11所示。
  3. protobuf-3.8.0srcgoogle 这个目录拷贝到 include 目录下。
  4. 将第三部分生成的 Debug 版本的库文件(libprotobufd.lib,libprotocd.lib)拷贝到 lib 文件夹
  5. 将第三部分生成的 Debug 版本的 protoc.exe 文件拷贝到 proto_file 文件夹
  6. proto_file 文件夹下新建 addressbook.protogenmsg.bat 两个文件。如图12和图13所示。
  7. 执行 genmsg.bat 就会生成 addressbook.pb.haddressbook.pb.cc 这两个文件。如图14所示
  8. 将这两个文件拷贝到工程所在目录,并新建main.cpp文件,如图15所示
  9. 接下来是最关键的几个步骤,一定要做对了。
  10. 右键 ProtobufTest 打开“ProtobufTest 属性页”对话框,配置选择Debug,平台选择x64,因为我们使用的是第三部分生成的Debug库文件(如果你想配置Release,那么必须使用第三部分生成的Release库文件).
  11. 在“C/C++”的“常规”标签页,找到“附加包含目录”,添加“include”,如图16所示。
  12. 在“C/C++”的“代码生成”标签页,找到“运行库”,选择“多线程调试(/MTd)”,如图17所示。这个步骤需要特别说一下,这里的选择和你编译libprotobuf这个工程的这个部分的设置一定要一致,否则会出错。如图18所示
  13. 在“链接器”的“常规”标签页,找到“附加库目录”,添加“lib”,如图19所示。
  14. 在“链接器”的“输入”标签页,找到“附加依赖项”,添加“libprotobufd.lib;libprotocd.lib;”如图20所示。
  15. 右键“ProtobufTest”,选择“添加”,选择“现有项”,将 addressbook.pb.h,addressbook.pb.cc,main.cpp 三个文件添加到工程中,如图21所示。
  16. 编辑 main.cpp 文件的内容,如图22所示。
  17. 如果编译成功,那么恭喜你,你已经可以成功使用protobuf了。
  18. 运行程序后,会生成一个person1.log文件,文件内容如图23所示。
7f69c3356ae14e7cb904a9e1dede7256

图11

21d412398b6240018a5b5d84cfcfb039

图12

71c12ca0298c437abe8bd78ae779814f

图13

3d7f74c0b31d44babe783e18ae127994

图14

8197051feea14b78a1d88a686c946ef5

图15

642539a39afe477cb3bf621caa603ea5

图16

4a53f399b9594286867c7b5e183781b4

图17

d093a5ae50114d64b638d963d15f8c2d

图18

9948384cd090496f95891f9a462cabdf

图19

281a436bd9db4aa4a9ac573affb596a0

图20

e807cb2cb4d04312b87a21eb716d12e9

图21

8b65c67acea94671a06ebf9f68ea82b8

图22

a080fbba3c0f4084894d492120a0c786

图23

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值