google proto buffer安装和简单示例
1、安装
下载google proto buff。
解压下载的包,并且阅读README.txt,根据里面的指引进行安装。
$ ./configure
$ make
$ make check
$ make install
没有意外的话,前面三步应该都能顺利完成,第四步的时候,需要root权限。我采用的默认的路径,所以,仅仅用root权限,还是安装不了,要自己先在/usr/local下新建一个lib的目录,然后执行make install,这样,应该就能顺利安装google proto buffer了。
安装完后,先写一个测试程序来测试下安装,先来看看proto文件:
package hello;
message Hello
{
required int32 id = 1; //user id
required string name = 2; //user name
optional string email = 3; //user email
}
接着,要用protoc生成一个对应的类,我把它生成在./out目录里:
protoc hello.proto --cpp_out=./out
接下来,在out目录下,会生成两个文件:
$> ls
hello.pb.cc hello.pb.h
接下来,编写测试用的c++代码:
hello.cc
#include <stdio.h>
#include <string.h>
#include "out/hello.pb.h"
using namespace std;
using namespace hello;
int main()
{
Hello a;
a.set_id(101);
a.set_name("xg");
string tmp;
bool ret = a.SerializeToString(&tmp);
if (ret)
{
printf("encode success!\n");
}
else
{
printf("encode faild!\n");
}
Hello b;
ret = b.ParseFromString(tmp);
if (ret)
{
printf("decode success!\n id= %d \n name = %s\n", b.id(), b.name().c_str());
}
else
{
printf("decode faild!\n");
}
return 0;
}
接着,编译一下这个代码,由于使用了protobuf的库,所以编译的时候,要把这些库也链接进来:
g++ hello.cc ./out/hello.pb.cc -o hello -I./out -I/usr/local/protobuf/include -L/usr/local/lib -lprotobuf
这样,就生成了测试程序。
运行一下:
$> ./hello
encode success!
decode success!
id= 101
name = xg
原文
http://hi.baidu.com/hins_pan/item/3be48ad0c6fdb7342a35c766
google proto buffer安装和简单示例的更多相关文章
- Redis 安装与简单示例
Redis 安装与简单示例 一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或 ...
- Google Protocol Buffer安装编译及使用
近期玩了玩谷歌的Protocol Buffer.以下就简介下 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准.眼下已经正在使用的 ...
- 【Apache Kafka】二、Kafka安装及简单示例
(一)Apache Kafka安装 1.安装环境与前提条件 安装环境:Ubuntu16.04 前提条件: ubuntu系统下安装好jdk 1.8以上版本,正确配置环境变量 ubuntu系统下安 ...
- 【Redis】三、Redis安装及简单示例
(四)Redis安装及使用 Redis的安装比较简单,仍然和大多数的Apache开源软件一样,只需要下载,解压,配置环境变量即可.具体安装过程参考:菜鸟教程Redis安装. 安装完成后,通过r ...
- Google proto buffer的安装/使用
protobuf安装/使用原本是要在官网上下载的:http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz可惜已被墙,幸好有好心人提供了以下 ...
- Redis 安装与简单示例 01_转
一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或者64位.下载解压后图片如下 ...
- Redis 安装与简单示例 <第一篇>
一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或者64位.下载解压后图片如下 ...
- Redis 安装与简单示例(转)
本文转载自:http://www.cnblogs.com/kissdodog/p/3570984.html Redis的安装 Redis下载地址如下:https://github.com/dmajki ...
- Spark安装和简单示例
spark的安装 先到官网下载安装包 注意第二项要选择和自己hadoop版本相匹配的spark版本,然后在第4项点击下载.若无图形界面,可用windows系统下载完成后传送到centos中. 本例中安 ...
随机推荐
- laravel url管理与使用
获取当前URL 获取当前URL有两种方式,URL::current()或URL::full(),区别是返不返回GET参数如 Route::get('/current/url',function() { ...
- 简单的SocketExample
客户端//---------------VerySimpleClient.java package SocketExample; // Tue Nov 2 18:34:53 EST 2004 // / ...
- YUV到RGB的转换
以下内容来源于网络,下面三个链接里的内容是比较好的,感谢博主的分享. http://blog.csdn.net/housisong/article/details/1859084 http://blo ...
- Android开发之消息机制
转:http://stackvoid.com/introduction-to-Message-Handler-in-Android/ http://blog.dreamtobe.cn/2016/03/ ...
- ArrayList和List之间的转换
开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: package test.test1; import java.util.ArrayList; import java.util.L ...
- Spring学习之声明式事物管理
public List<Student> selectStudent() { Student s = new Student(); s.setName("zhengbin&quo ...
- 【轻院热身赛】级数求和、进制转换、candy
[题目链接:级数求和] Problem A: 级数求和 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 409 Solved: 240 SubmitSt ...
- 【转】eclipse中egit插件使用
原文网址:http://my.oschina.net/songxinqiang/blog/192567 eclipse和git这个两个工具的使用人数都是相当多的,在eclipse里面也有egit插件来 ...
- ByteBuffer用法小结
在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区.缓冲区是定长的,基本上它只是一个列表,它的所有元素 ...
- longest common str
#include <vector> #include <iostream> #include <string> using namespace std; int l ...