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. 10-Mock模拟接口返回数据

    1.安装mock 方法一:pip安装 命令行直接输入:pip install mock 方法二:官网下载mock安装包安装 下载安装包后,解压,命令行进入解压目录,执行python setup.py ...

  2. repo 用法

    repo的用法(zz) 注:repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载.管理Android项目的软件仓库.(也就是说,他是用来管理给git管理的一个个仓库的) ...

  3. java实现中缀表达式转后缀表达式

    package postfix; import java.util.Stack; /** * * @author DELL 将中缀表达式转化为后缀表达式 */ public class Express ...

  4. C语言setjmp用法解析

    https://www.cnblogs.com/hbiner/p/3261437.html

  5. 笔记:Zygote和SystemServer进程启动过程

    简述 Android设备启动过程中,先是Linux内核加载完,接着Android中的第一个进程init启动,它会启动一些需要开机启动的进程. Zygote就是进程init启动起来的.Android中所 ...

  6. 5个相见恨晚的Linux命令

    阅读本文大概需要 2.4 分钟. 作者 | 李火清 转载自[CU技术社区] 编者按:说到Linux命令相信大家都不陌生,就连前端现在也要经常在 terminal 敲一些 node,gulp等命令,本文 ...

  7. 如何将自己的jar包发布到mavan中央仓库

    最近自己写了一个关于网关限流的插件,然后想着肯定会有很多兄弟也需要使用到,所以就想着把jar包上传到Maven的中央仓库上让大家可以更方便的使用 现在咱们来看一下这个流程是什么样的呢. 首先呢,你得去 ...

  8. Ubuntu18.04或者Deepin15.8 部署Django项目

    一.首先先安装nginx静态服务 1.安装gcc g++的依赖库sudo apt-get install build-essential && sudo apt-get install ...

  9. PHP删除当前目录及其目录下的所有文件

    使用PHP遍历一个目录下的所有目录及文件,并删除该目录及其目录下的所有子目录和文件,本次代码通过递归的方式来实现. 用到的函数: scandir($path) 遍历一个目录下所有文件并返回数组. un ...

  10. MySQL结构

    MySQL属于关系型数据库管理系统(RDBMS),使用RDBMS时,最常见的系统结构就是客户端/服务器类型(C/S类型)这种结构. 服务器指的是用来接收其他程序发出的请求,并对该请求进行相应处理的程序 ...