编译完成后,将会在目标目录中生成 xxx.pb.h 和pb.cc,文件,将其引入到我们的C++工程中即可实现使用protobuf进行序列化: 在C++源文件中包含 xxx.pb.h 头文件,在g++编译时链接http://xxx.pb.cc源文件即可: g++ main_test.cpp pb.cc, -o main_test -lprotobuf 推荐视频: 高并发之protobuf通信协议设计 c++...
#define_CRT_SECURE_NO_WARNINGS#include<string.h>#include<stdlib.h>#include<iostream>#include<string>usingnamespacestd; #include"../proto/person.pb.h"intmain(intargc,char**argv) {//1.定义要传送数据的对象 对应message后跟的名字Person p;//2.初始化对象p.set_name("大圣"); p.set_email("wu...
(6)在项目工程中只需要添加一个由编译器库生成的.proto文件(该文件相当于确定数据协议,数据结构中存在哪些数据,数据类型是怎么样),该文件大小与编译前定义多少结构化数据正相关,以c语言为例,在工程中的protobuf表现形式就是一个.pb-c.c 和 .pb-c.h两个文件,包含进工程即可,跟普通的c文件和h文件一样,编译...
Protocol Compiler是用来将我们自定义的.proto文件生成对应的数据结构源文件如C++的.cc和.h文件,改变输出参数也可以生成python的.py文件,java的.java文件等。 官方的语言支持有:C++ Java Python Objective-C C# Javascript Ruby Go PHP Dart。 Protobuf Runtime是用来生成库文件并且提供必要的文件,集成到你的代码里...
packagecn.com.codingce.hbase; messageUserDetail { requiredstringusername=1; requiredstringpassword=2; } //这是一个类,该类对象中包含很多UserDetail对象,每个UserDetail 对象是一条记录,dayUserDetail类的对象其实就相当于Java的集合。 messagedayUserDetail ...
#include "IM.Login.pb.h" //按结构进行数据构造,并获得序列化后的数据 并输出 bool create_encode_data(std::string &strProto); //参数传出结果 //根据获取到的序列化数据,进行反序列化获取原特定结构的数据 bool decode_data_get_data(std::string &strProto); //传入参数 ...
1.定义数据结构:首先,开发者使用.proto文件来定义数据结构。这个文件是一种领域特定语言(DSL),用来描述数据消息的结构,包括字段名称、类型(如整数、字符串、布尔值等)、字段标识号等等。 syntax ="proto3";// 有点类似 TypeScript 的 interfacemessage Person {stringname =1;int32id =2;stringemail =3; ...
将刚才编译后的libprotobufd.lib和protoc.exe拷贝到自己创建的项目下,按住shift+右键,选择打开CMD,输入protoc --cpp_out=./ Account.proto,发现目录中多了两个文件,一个.h头文件一个.cc源文件 打开Account.pb.h头文件,发现package就是命名空间,Account是类,大概如下代码 代码语言:txt 复制 namespace IM { ...
protobuf不能完全代替json,就像这个登录的例子一样,通过json的话只需要把数据的格式传给服务端就好了。而protobuf还需要将proto文件,还需要protoc编译出.cc、.h文件;相对这种场景下操作更复杂了。
4.到protobuf的官网下载h:ttps://github.com/google/protobuf/releases 下载文件是第一个的压缩包 解压后的文件为protobuf-版本号的文件夹,在终端CD到该文件路径下面,执行安装指令 // 第一步$./autogen.sh image.png // 第二步$./configure # 建议不要使用这个语句, 建议指定一下文件路径 ...