标签归档:c++

Protocol Buffers的安装使用和C++/Python入门示例

1. 介绍

protoc buffers是google公司开发和开源的一款数据序列化和反序列化的工具。Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。官方支持C++、java和pthon语言,并且有大量的第三方语言支持,如php,ruby等。

2. 编译安装

我这里是用 –prefix 选项指定安装在/home/admin/work/protobuf-2.3.0/proto目录下, 如果不指定目录,将默认安装在/usr/local/下。

安装完成后在 /home/admin/work/protobuf-2.3.0/proto 下将生成三个文件夹bin,include和lib

将 /home/admin/work/protobuf-2.3.0/proto/bin 加到PATH里面,还有lib目录加在LD_LIBRARY_PATH里面方便点。

3. 编写.proto接口文件

参考网上的例子,写一个示例程序。该程序由两部分组成。第一部分被称为 Writer,第二部分叫做 Reader。Writer 负责将一些结构化的数据写入一个磁盘文件,Reader 则负责从该磁盘文件中读取结构化数据并打印到屏幕上。准备用于演示的结构化数据是 HelloWorld,它包含两个基本数据:

ID,为一个整数类型的数据

Str,这是一个字符串

其中,package 名字叫做 lm,定义了一个消息 helloworld,该消息有三个成员,类型为 int32 的 id,另一个为类型为 string 的成员 str。opt 是一个可选的成员,即消息中可以不包含该成员。

文件保存为 lm.helloworld.proto

4. 编译.proto文件

或者写完整路径:

5. 编写writer和reader程序

writer.cpp 将把一个结构化数据写入磁盘… --> 阅读全文