ProtoBuf使用指南(C++)
ProtoBuf使用指南(C++)
Created: Mar 12, 2019 6:47 PM
Last Edited Time: Mar 22, 2019 1:51 PM
1.安装部署
-
去官网(gitHub下载,现在用的版本是protobuf-all-3.7.0.zip)
-
去Cmake官网下载Cmake(cmake-3.14.0-rc4-win64-x64)
-
操作Cmake对Proto的源码进行处理
-
Cmake第二步
-
Cmake第三步:Configure成功后,返回Cmake首页选择确定要编译的相关组件(不知道具体每个组件的作用,图上打勾的必选,其余可选,不确定就全选)
-
Cmake最后一步,点击Generate,生成成功则编译成功。(注:如果ProtoBuf是64位的或者想要在x64平台上编译,一定要选择x64,默认为32,不选会出错。)随后,在输出目录就会有编译完成的文件。
-
打开Cmake处理完成的文件,目录下有个.sln文件,用vs2017打开,对项目进行编译(也可以只编译libprotobufd/libprotocd/libprotobuf-lited等几个项目,我这里直接全部编译-F6),编译前注意是Debug方式,平台为X64。没有报错基本就是编译成功了。
-
打开编译OK的文件,进入Debug目录,目录下大致文件如下,这样基本就是成功了。(网上有人编译后的lib和protoc.exe不一样大,除了版本问题外还有可能编译过程有问题,自己把握)
2:C++程序使用指南
-
写一个.proto文件,命名为msg.proto
-
新建一个C++空的项目,从build的protoBug文件的Debug目录下拷贝下面的文件到项目名目录下(如项目叫“Project”,目标目录是“Project/Project”),并且把msg.proto文件也拷贝到这个目录下
-
打开CMD,跳到msg.proto所在的文件目录下,执行下面的这个命令(addressbook.proto→msg.proto)
-
执行完成之后生成两个文件:msg.pb.h和msg.pb.cc,打开这两个文件,搜索下msg里面的字段,如果有has_clientid() 这类字样说明生成成功了。(鉴于我第一次就生成失败了,这一步检查还是很有必要的)
-
用VS打开刚刚的项目,右击添加项目:msg.pb.h和msg.pb.cc。
-
配置环境:
-
右击项目→属性→vc++目录→包含目录 添加protoBuf的src目录
-
属性→C/C++→预处理器定义添加_CRT_SECURE_NO_DEPRECATE和PROTOBUF_USE_DLLS
-
C/C++→常规→SDL 设置SDL为否
-
链接器→附加库目录 添加项目目录(前提是各种lib文件已经复制到项目目录中)
-
链接器→输入→附加依赖项 添加lib文件名
环境配置完毕
-
-
新建Client.cpp,编译,启动。
-
将项目文件整体复制出来,修改Client.cpp为Server.cpp编译,启动。
-
通讯完成
-