protobuf 安装和使用

原创 2015年11月18日 16:22:46

下载

git clone https://github.com/google/protobuf.git
cd protobuf
$ ./autogen.sh

可能会遇到以下问题:/autogen.sh: 40: autoreconf: not found
解决办法: sudo apt-get install autoconf automake libtool

./configure –prefix=/usr
make
make check
make install

使用

一、首先定义一个proto文件:

 package lm; 
 message helloworld 
 { 
    required int32     id = 1;  // ID 
    required string    str = 2;  // str 
    optional int32     opt = 3;  //optional field 
 }

取名为:lm.helloworld.proto
在该文件的当前目录下,运行如下命令:

protoc -I=./ --cpp_out=./ lm.helloworld.proto

生成lm.helloworld.pb.h 和 lm.helloworld.pb.cc两个文件,分别是类的定义和实现文件。

二、然后使用上面两个文件,新建write.cpp和read.cpp文件:
write.cpp

#include "lm.helloworld.pb.h"
#include <iostream>
#include <fstream>

using namespace std;
int main(void)
{
    lm::helloworld msg1;
    msg1.set_id(101);
    msg1.set_str("Hello");

    fstream output("./log", ios::out | ios::trunc | ios::binary);

    if (!msg1.SerializeToOstream(&output))
    {
        cerr << "Failed to write msg." << endl;
        return -1;
    }
    return 0;
}

read.cpp

#include "lm.helloworld.pb.h"
#include <iostream>
#include <fstream>

using namespace std;

int main(void)
{
    lm::helloworld msg1;
    fstream input("./log", ios::in | ios::binary);
    if (!msg1.ParseFromIstream(&input))
    {
        cerr << "Failed to parse address book." << endl;
        return -1;
    }

    cout << msg1.id() << endl;
    cout << msg1.str() << endl;
    return 0;
}

三、编译上面两个文件

c++ write.cpp lm.helloworld.pb.cc -lprotobuf -o write
c++ read.cpp lm.helloworld.pb.cc -lprotobuf -o read

相关文章推荐

protobuf源码编译与安装

protobuf源码编译与安装1.下载protobuf源码git clone https://github.com/google/protobuf.git2.安装编译所需的依赖sudo yum ins...

protobuf搭建环境,序列化示例

编译安装 protobuf是google开源的一个序列化方案,根据google的benchmarking测试,各个方面的表现都非常不错。详细的可以参考下面的基准测试项目: https://gith...
  • wutbiao
  • wutbiao
  • 2015年04月13日 18:13
  • 5242

Golang 安装Protobuf

gRpc 发布了1.0版,想来试试看,发现新电脑没有装protobuf,之前装的完了记过程,又重新网上搜了一下做个记录,我的系统是ubuntu15.10 获取 Protobuf 编译器 protoc我...

Protobuf 3.0.0 安装入门

1 下载安装 CMAKE 并打开 CMAKE  相关下载地址 :: http://blog.csdn.net/warrially/article/details/52683611 ...

ProtoBuf安装和使用简介

在前一篇文章中,对ProtoBuf做了一个基本介绍,这篇文章主要介绍ProtoBuf的安装和使用。 ProtoBuf的安装 安装ProtoBuf前需要先安装ProtoBuf的编译器和运行时环境。 对于...

protobuf 3.1.0 安装示例和使用指南说明

protobuf 3.1.0 安装示例和使用指南说明 说明: 本文例子见: https://github.com/githublefantian/protobuf-3.1.0example.git ...

linux下安装google protobuf(详细)

说明: protobuf已经全面迁移到github,地址:https://github.com/google/protobuf 直接下载2.6.1版本:https://github.com/goo...
  • xiexievv
  • xiexievv
  • 2015年08月10日 11:55
  • 38362

linux中编译tslib1.4出错:./autogen.sh: 4: autoreconf: not found

./autogen.sh: 4: autoreconf: not found 是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是 因为没有安装automake ...

Google protobuf的安装及使用

最近应为工作的需要,合作的部门提供了protobuf的接口,总结了一下使用的过程和方法如下: 下载protobuf-2.3.0: http://protobuf.googleco...

protobuf安装及一个Demo

关于protobuf,google官网是如此介绍的:    Protocol Buffers are a way of encoding structured data in an efficien...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:protobuf 安装和使用
举报原因:
原因补充:

(最多只允许输入30个字)