Protobuf介绍
Protobuf提供一种灵活、高效、自动序列化结构数据的机制,可以联想XML,但是比XML更小、更快、更简单。仅需要自定义一次所有的数据格式,然后用户就可以使用Protobuf编译器自动生成各种语言的源码,方便的读写用户自定义的格式化的数据。与语言无关,与平台无关,还可以在不破坏原数据格式的基础上,依据老的数据格式,更新现有的数据格式。
Protobuf特点
作用与XML、json类似,他是二进制格式,性能好,效率高
代码生成机制,易于使用
解析速度快
支持多种语言
向后兼容、向前兼容
缺点:可读性差
下载并安装
1)下载
下载源码Source code (tar.gz)
2)解压
tar -xvf protobuf-3.6.1.tar.gz
3)编译安装
cd protobuf-3.6.1
./autogen.sh
./configure
make
make install
注意:
configure: WARNING: no configuration information is in third_party/googletest
需要下载googletest,下载地址:https://github.com/google/googletest/releases,解压后放在./protobuf-3.6.1/third_party/googletest,然后执行./autogen.sh之后的
4)简单测试
// Helloworld.proto
syntax = "proto3";
package lm;
message helloworld
{
int32 id = 1;
string str = 2;
}
protoc -I=./ --cpp_out=./ helloworld.proto
编译成功后生成.cc和.h文件,对应为helloworld.pb.cc和helloworld.pb.h
// main.cpp
#include <iostream>
#include <