ProtoBuf使用指南(C++)

Created: Mar 12, 2019 6:47 PM
Last Edited Time: Mar 22, 2019 1:51 PM

1.安装部署

  1. 去官网(gitHub下载,现在用的版本是protobuf-all-3.7.0.zip)

  2. 去Cmake官网下载Cmake(cmake-3.14.0-rc4-win64-x64)

  3. 操作Cmake对Proto的源码进行处理

  4. Cmake第二步

  5. Cmake第三步:Configure成功后,返回Cmake首页选择确定要编译的相关组件(不知道具体每个组件的作用,图上打勾的必选,其余可选,不确定就全选)

  6. Cmake最后一步,点击Generate,生成成功则编译成功。(注:如果ProtoBuf是64位的或者想要在x64平台上编译,一定要选择x64,默认为32,不选会出错。)随后,在输出目录就会有编译完成的文件。

  7. 打开Cmake处理完成的文件,目录下有个.sln文件,用vs2017打开,对项目进行编译(也可以只编译libprotobufd/libprotocd/libprotobuf-lited等几个项目,我这里直接全部编译-F6),编译前注意是Debug方式,平台为X64。没有报错基本就是编译成功了。

  8. 打开编译OK的文件,进入Debug目录,目录下大致文件如下,这样基本就是成功了。(网上有人编译后的lib和protoc.exe不一样大,除了版本问题外还有可能编译过程有问题,自己把握)

    2:C++程序使用指南

    1. 写一个.proto文件,命名为msg.proto

    2. 新建一个C++空的项目,从build的protoBug文件的Debug目录下拷贝下面的文件到项目名目录下(如项目叫“Project”,目标目录是“Project/Project”),并且把msg.proto文件也拷贝到这个目录下

    3. 打开CMD,跳到msg.proto所在的文件目录下,执行下面的这个命令(addressbook.proto→msg.proto)

    4. 执行完成之后生成两个文件:msg.pb.h和msg.pb.cc,打开这两个文件,搜索下msg里面的字段,如果有has_clientid() 这类字样说明生成成功了。(鉴于我第一次就生成失败了,这一步检查还是很有必要的)

    5. 用VS打开刚刚的项目,右击添加项目:msg.pb.h和msg.pb.cc。

    6. 配置环境:

      1. 右击项目→属性→vc++目录→包含目录 添加protoBuf的src目录

      2. 属性→C/C++→预处理器定义添加_CRT_SECURE_NO_DEPRECATE和PROTOBUF_USE_DLLS

      3. C/C++→常规→SDL 设置SDL为否

      4. 链接器→附加库目录 添加项目目录(前提是各种lib文件已经复制到项目目录中)

      5. 链接器→输入→附加依赖项 添加lib文件名


        环境配置完毕

    7. 新建Client.cpp,编译,启动。

    8. 将项目文件整体复制出来,修改Client.cpp为Server.cpp编译,启动。

    9. 通讯完成

ProtoBuf使用指南(C++)的更多相关文章

  1. Protobuf语言指南(转)

    Protobuf语言指南 l  定义一个消息(message)类型 l  标量值类型 l  Optional 的字段及默认值 l  枚举 l  使用其他消息类型 l  嵌套类型 l  更新一个消息类型 ...

  2. Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南

    Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南 约定:为方便书写,ProtocolBuffers在下文中将已Protobuf代替. 本指南将向您描述如何使用 ...

  3. Protocol Buffers(Protobuf)开发者指南---概览

    Protocol Buffers(Protobuf)开发者指南---概览 欢迎来到protocol buffers的开发者指南文档,protocol buffers是一个与编程语言无关‘.系统平台无关 ...

  4. Protobuf语言指南

    Protobuf语言指南 l  定义一个消息(message)类型 l  标量值类型 l  Optional 的字段及默认值 l  枚举 l  使用其他消息类型 l  嵌套类型 l  更新一个消息类型 ...

  5. Protobuf 语言指南(proto3)

    Protobuf 语言指南(proto3) Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单.您可以定义数 ...

  6. GOOGLE PROTOBUF开发者指南

    原文地址:http://www.cppblog.com/liquidx/archive/2009/06/23/88366.html 译者: gashero 目录 1   概览 1.1   什么是pro ...

  7. Protobuf 语法指南

    英文: Proto Buffers Language Guide 本指南描述了怎样使用protocol buffer 语法来构造你的protocol buffer数据,包括.proto文件语法以及怎样 ...

  8. ProtoBuf开发者指南

    目录 1   概览 1.1   什么是protocol buffer 1.2   他们如何工作 1.3   为什么不用XML? 1.4   听起来像是为我的解决方案,如何开始? 1.5   一点历史 ...

  9. protobuf语法指南

    遇到proto编译问问,看看proto语法,记录一下 protobuf3 语法指南 http://colobu.com/2017/03/16/Protobuf3-language-guide/ htt ...

随机推荐

  1. why microsoft named their cloud service Azure?

    best guess I can personally make is that because Azure literally means “bright blue color of the clo ...

  2. JAVA泛型实现原理

    1. Java范型时编译时技术,在运行时不包含范型信息,仅仅Class的实例中包含了类型参数的定义信息.泛型是通过java编译器的称为擦除(erasure)的前端处理来实现的.你可以(基本上就是)把它 ...

  3. 第75节:Java的中的JSP,EL和JSTL

    第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...

  4. 边学边做,简单的 GraphQL 实例

    项目中有功能要调用 API,对方 API 用的是 GraphQL 实现,就简单学了下,感叹技术进步真快,Facebook 发明的这玩意儿咋这么牛逼,使前端开发人员变得主动起来,想要什么接口.返回什么结 ...

  5. ELK搭建elasticsearch常见报错

    问题一: [2018-01-31T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter: Java.lang ...

  6. ubuntu16.04 下鼠标变成十字形状无法点击情况解决

    出现这种问题的原因是把shell命令行终端当成了python环境,误输入了"import"命令. (当然如果你真的希望在shell中输入import指令除外...) 我自己想当然的 ...

  7. 10 种保护 Spring Boot 应用的绝佳方法

    原文:developer.okta.com/blog/2018/07/30/10-ways-to-secure-spring-boot 译文:www.jdon.com/49653 Spring Boo ...

  8. 整理了一周的Python资料,包含各阶段所需网站、项目,收藏了慢慢来

    这周应该有不少学校已经开学了,那么同学们都该动起来了,把家里面的那些懒习惯给扔掉了可以. 不知怎么的,最近不少关注我的读者都开始私信我怎么学好python?零基础转行是不是合适,还有希望吗?今年30了 ...

  9. MngoDb MongoClientOptions 配置信息及常用配置信息

    MongoClientOptions.Builder addClusterListener(ClusterListener clusterListener)Adds the given cluster ...

  10. express脚手架的安装,以及ejs的语法

    express 1.建一个项目  npm init -y 初始化一下项目 2.cnpm install express -S 安装express模块 3.cnpm init 安装依赖 !ejs模板是后 ...