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编译,启动。
通讯完成
ProtoBuf使用指南(C++)的更多相关文章
- Protobuf语言指南(转)
Protobuf语言指南 l 定义一个消息(message)类型 l 标量值类型 l Optional 的字段及默认值 l 枚举 l 使用其他消息类型 l 嵌套类型 l 更新一个消息类型 ...
- Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南
Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南 约定:为方便书写,ProtocolBuffers在下文中将已Protobuf代替. 本指南将向您描述如何使用 ...
- Protocol Buffers(Protobuf)开发者指南---概览
Protocol Buffers(Protobuf)开发者指南---概览 欢迎来到protocol buffers的开发者指南文档,protocol buffers是一个与编程语言无关‘.系统平台无关 ...
- Protobuf语言指南
Protobuf语言指南 l 定义一个消息(message)类型 l 标量值类型 l Optional 的字段及默认值 l 枚举 l 使用其他消息类型 l 嵌套类型 l 更新一个消息类型 ...
- Protobuf 语言指南(proto3)
Protobuf 语言指南(proto3) Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单.您可以定义数 ...
- GOOGLE PROTOBUF开发者指南
原文地址:http://www.cppblog.com/liquidx/archive/2009/06/23/88366.html 译者: gashero 目录 1 概览 1.1 什么是pro ...
- Protobuf 语法指南
英文: Proto Buffers Language Guide 本指南描述了怎样使用protocol buffer 语法来构造你的protocol buffer数据,包括.proto文件语法以及怎样 ...
- ProtoBuf开发者指南
目录 1 概览 1.1 什么是protocol buffer 1.2 他们如何工作 1.3 为什么不用XML? 1.4 听起来像是为我的解决方案,如何开始? 1.5 一点历史 ...
- protobuf语法指南
遇到proto编译问问,看看proto语法,记录一下 protobuf3 语法指南 http://colobu.com/2017/03/16/Protobuf3-language-guide/ htt ...
随机推荐
- Python序列结构--字典
字典:反映对应关系的映射类型 字典(dict)是包含若干“键:值”元素的无序可变序列 字典中元素的“键”可以是python中任意不可变数据,例如整数.实数.复数.字符串.元组等类型可哈希数据,“键”不 ...
- jQuery-爱奇艺图片切换
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- Java面试中的“劲敌”线程,9个疑问全面解析
作者:我是攻城师 (一)创建线程的方式 (1)实现Runnable接口 (2)继承Thread类 推荐使用接口,能够做到定义与实现分离,耦合更低 (二)关于线程的优先级 thread2.setPrio ...
- Javascript高级编程学习笔记(71)—— 模拟事件(1)DOM事件模拟
事件,指的是网页中某个特定的交互时刻 一般来说事件由浏览器厂商负责提供,一般由用户操作或者其它浏览器功能来触发 但是有一类特殊的事件,那就是由我们开发人员通过JS触发的事件 这些事件和浏览器创建的事件 ...
- Javascript高级编程学习笔记(49)—— DOM2和DOM3(1)DOM变化
DOM变化 我们知道DOM有许多的版本,其中DOM0和DOM2这两个级别以对事件的纳入标准而为人所知 但是呢,这里不讲事件,在后面会有专门和事件有关的部分作为详细讲解 这里就只讲一下DOM2和DOM3 ...
- 虚拟机安装ssh,关闭防火墙
输入命令:sudo apt-get install openssh-server 安装ssh 安装完成后,开启服务 sudo /etc/init.d/ssh start 之后使用如下命令 ...
- pyengine介绍及使用
一个可以通过HTTP请求动态执行Python 代码的HTTP服务器,还自带一个装饰器来执行时间较长的任务. 使用方法 1 pip install pyengine 2 pyengine run -d ...
- System.net.mail.smtpException;服务器提交了协议冲突 服务器响应为:
最近发邮件遇到问题. 主机godaddy 端口 25,80 都可以用 stmp服务器地址:smtpout.secureserver.net 不支持ssl 我就吧 EnableSsl 设置为false了 ...
- (转)p解决 java.util.prefs.BackingStoreException 报错问题
原文:https://blog.csdn.net/baidu_32739019/article/details/78405444 https://developer.ibm.com/answers/q ...
- 解决添加codova plugin 编译出现问题:Execution failed for task ':processDebugManifest'.
问题背景: ionic3项目上,添加cordova-plugin-cszbar,编译运行在android平台上 ,结果编译不成功.出现以下问题. Element uses-feature#androi ...