C++使用protobuf(Linux下)
作者:hahaya
日期:
很久之前就听过protobuf,但是一直没有使用过,最近在做一个小东西,涉及到C++和go的数据交换,就想到了使用protobuf,由于没有使用过,所以就先需要一些小小的试验,接下来就有了本文。
一、protobuf简介
protobuf全称为google protocol buffer,是google内部使用的一种数据交换格式,后来开源出来了。protobuf是一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。很像XML、JSON等,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。
二、下载安装protobuf
要想使用protobuf,得先进行安装,在http://code.google.com/p/protobuf/downloads/list下载protobuf源码包protobuf-2.5.0.tar.gz,在终端下依次执行如下命令进行protobuf的安装:
tar -zxvf protocol-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make
make check
sudo make install
安装完成后在终端下执行vim ~/.profile
打开配置文件,在该文件中添加export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
,然后保存退出,接下来执行source ~/.profile
是配置文件修改生效,最后执行protoc --version
查看protobuf版本以测试是否安装成功
三、生成protobuf协议文件
执行命令vim msg.proto
新建一个名为msg.proto的文件,并将其打开,在msg.proto中输入如下内容:
输入完成后,保存退出,在终端下执行protoc --cpp_out=. msg.proto
生成对应的msg.pb.h和msg.pb.cpp文件
四、在C++中使用protobuf
执行命令vim protobuf_test.cc
新建一个名为protobuf_test.cc的C++源文件,并将其打开,在其中输入如下内容:
输入完成后,保存退出,在终端下执行g++ protobuff_test.cc msg.pb.cc -o main -lprotobuf
命令进行编译,编译成功后执行./main
运行。
数据交换使用protobuf真方便,google的东西真心靠谱,更多关于protobuf的使用请在官网http://code.google.com/p/protobuf/上查看~
出处:http://hahaya.github.com/use-protobuf-in-c-plus-plus
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。