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...
  • wenwenxiong
  • wenwenxiong
  • 2016年12月14日 19:46
  • 3074

Golang 安装Protobuf

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

protobuf一些注意事项

读完protobuf一些文档,写点东西,权作记忆。 https://github.com/google/protobuf/blob/master/CHANGES.txt: google发布了pro...
  • menggucaoyuan
  • menggucaoyuan
  • 2015年02月07日 13:46
  • 48087

protobuf-2.5.0-from-github

  • 2017年07月12日 15:17
  • 2.91MB
  • 下载

ProtoBuf安装和使用简介

在前一篇文章中,对ProtoBuf做了一个基本介绍,这篇文章主要介绍ProtoBuf的安装和使用。 ProtoBuf的安装 安装ProtoBuf前需要先安装ProtoBuf的编译器和运行时环境。 对于...
  • hailong0715
  • hailong0715
  • 2016年07月28日 18:58
  • 16476

linux下安装google protobuf(详细)

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

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

protobuf 3.1.0 安装示例和使用指南说明 说明: 本文例子见: https://github.com/githublefantian/protobuf-3.1.0example.git ...
  • u012481607
  • u012481607
  • 2017年04月12日 13:12
  • 2991

Google protobuf的安装及使用

最近应为工作的需要,合作的部门提供了protobuf的接口,总结了一下使用的过程和方法如下: 下载protobuf-2.3.0: http://protobuf.googleco...
  • zaitianaoxiang
  • zaitianaoxiang
  • 2012年06月06日 17:24
  • 48105

Google Protobuf在Linux下的安装

介绍Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 ...
  • xiangxianghehe
  • xiangxianghehe
  • 2017年12月29日 10:10
  • 116

编译配置protobuf3

编译配置protobuf3
  • kunyXu
  • kunyXu
  • 2017年12月21日 15:42
  • 126
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:protobuf 安装和使用
举报原因:
原因补充:

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