protobuf安装和使用

一、概述

Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data for use in communications protocols, data storage, and more.

参考官网:https://developers.google.com/protocol-buffers/

二、安装

2.1 系统默认protobuf

Ubuntu 16.04安装了protobuf 2.6.1。

查看protobuf的版本的命令:

protoc --version

查看protoc路径:

which protoc 

系统默认安装路径/usr/bin/protoc

2.2 安装指定版本的protobuf

各版本protobuf下载地址: https://github.com/protocolbuffers/protobuf/releases/ ,根据需要选择版本分支,以3.6.1为例。

生成configure:

./autogen.sh 

PS: 如果出现如下错误  ./autogen.sh: 37: ./autogen.sh: autoreconf: not found或者autoreconf: /usr/bin/autoconf failed with exit status: 1错误,需要先安装autoconf,automake和libtool

sudo apt-get update  #autoconf和automake是用来发布C程序
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

 从makefile中读取指令,安装到指定的位置

./configure --prefix=/home/yly/Software/protobuf-3.6.1/local #configure用来生成makefile 
make -j12 #编译
make install #从makefile中读取指令,安装到指定位置(即使用configure生成makefile时指定的--prefix对应的地址)

参考:https://blog.csdn.net/qq_16775293/article/details/81119375

三、使用

编写message文件,msg.proto,里面存储了数据结构。

通过protoc编译,每个message自动生成一个类,包含了自动由protoc定义的方法。具体操作:

./protoc --cpp_out=/OUT_DIR -I=/PATH/OF/msg.proto  msg.proto  
#SYNOPSIS: protoc [--cpp_out=OUT_DIR] [-IPATH=PATH] PROTO_FILE

生成msg.pb.h和msg.pb.cc文件。

其中,.h是头文件,为类的声明;.cc中定义了类。

你可能感兴趣的:(Ubuntu基础)