【ProtoBuf】了解ProtoBuf和安装ProtoBuf

一、初识ProtoBuf

1.1 序列化和反序列化概念

       我们在打电话的时候,是怎样将发送方所说的信息传送到接收方,这里的信息转换就运用到了序列化和反序列化。下面我们来介绍一下序列化和反序列的是什么?

序列化:把对象转换为字节序列的过程称为对象的序列化

反序列化:把字节序列恢复为对象的过程称为对象的反序列化

       在生活中需要序列化的情况有很多:比如:存储数据:当你想把内存中的对象状态保存到一个文件中或者存到数据库中时;网络传输: 网络直接传输数据,但是无法直接传输对象,所以要在传输前序列化,传输完成后反序列化成对象。

       而今天我们所学的protobuf就是实现序列化的方法之一,其中实现序列化的方法还有xmlJson,在我的项目中所使用的序列化的方法是Json。 

1.2 ProtoBuf是什么

我们先来看一看官方给出的答案是什么:

Protocol buffers are Google's language-neutral, platform-neutral, 
extensible mechanism for serializing structured data ‒ think XML, 
but smaller, faster, and simpler. You define how you want your 
data to be structured once, then you can use special generated 
source code to easily write and read your structured data to 
and from a variety of data streams and using a variety of languages.
翻译过来的意思就是:
 
Protocol Buffers 是 Google 的⼀种语⾔⽆关、平台⽆关、可扩展的
序列化结构数据的⽅法,它可⽤于(数据)通信协议、数据存储等。
Protocol Buffers 类⽐于 XML,是⼀种灵活,⾼效,⾃动化机制的结构
数据序列化⽅法,但是⽐XML 更⼩、更快、更为简单。你可以定义数据的结构,
然后使⽤特殊⽣成的源代码轻松的在各种数据流中使⽤各种语⾔进⾏编写和读取
结构数据。你甚⾄可以更新数据结构,⽽不破坏由旧数据结构编译的已部署程序。

简单来说,ProtoBuf是让结构数据序列化的方法,其具有以下特点:

  1. 语言无关、平台无关:即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台。
  2. 高效:即比 XML 更小、更快、更为简单。
  3. 扩展性、兼容性好:你可以更新数据结构,而不影响和破坏原有的旧程序。

1.3 ProtoBuf的使用特点

  1. 编写 .proto 文件,目的是为了定义结构对象(message)及属性内容。
  2. 使用 protoc 编译器编译 .proto 文件,生成⼀系列接口代码,存放在新生成头文件和源文件中。
  3. 依赖生成的接口,将编译生成的头文件包含进我们的代码中,实现对 .proto 文件中定义的字段进行设置和获取,和对 message 对象进行序列化和反序列化。

       总的来说,ProtoBuf是需要依赖通过编译生成的头文件和源文件来使用的。

二、安装ProtoBuf

2.1 下载ProtoBuf

       我们是在Linux下使用ProtoBuf,因此,我们来进行ProtoBuf的下载。在下载ProtoBuf前,一定要安装依赖库:autoconf automake libtool curl make g++ unzip。

// Ubuntu 用户选择:
sudo apt-get install autoconf automake libtool curl make g++ unzip -y

// CentOS 用户选择:
sudo yum install autoconf automake libtool curl make gcc-c++ unzip

ProtoBuf 下载地址:https://github.com/protocolbuffers/protobuf/releases

       在这里我们下载v21.11版本,在这里我们希望支持全语言,所以选择ProtoBuf-all-1.11.zip,下载命令为:

wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-
21.11.zip

下载之后进行解压:

unzip protobuf-all-21.11.zip 

解压完成后,会生成 protobuf-21.11 文件,进入文件:

cd protobuf-21.11 

2.2 安装ProtoBuf

进入解压好的文件,执行以下命令:

# 第⼀步执⾏autogen.sh,但如果下载的是具体的某⼀⻔语⾔,不需要执⾏这⼀步。
./autogen.sh 
 
# 第⼆步执⾏configure,有两种执⾏⽅式,任选其⼀即可,如下:
# 1、protobuf默认安装在 /usr/local ⽬录,lib、bin都是分散的
./configure  

# 2、修改安装⽬录,统⼀安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf

再依次执行以下命令:

make // 执⾏15分钟左右
make check // 执⾏15分钟左右
sudo make install

有些人在 make check 的时候回出现错误,例如:

       遇到这种问题是没有任何问题的,只是你的服务器的配置比较低,直接进行启动就好了。直接使用命令:sudo make install。

       到此,需要你回忆⼀下在执行configure时,如果当时选择了第⼀种执行方式,也就是./configure ,那么到这就可以正常使用protobuf了。如果选择了第⼆种执行方式,即修改了安装
目录,那么还需要在/etc/profile中添加⼀些内容:

sudo vim /etc/profile  // 使用该命令打开文件

# 添加内容如下:

#(动态库搜索路径) 程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执⾏程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头⽂件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头⽂件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

最后一步,重新执行/etc/profile文件:

source /etc/profile

2.3 检查是否安装成功

protoc --version

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在CentOS上安装和使用protobuf,可以按照以下步骤进行操作: 1. 首先,确保系统中已经安装了autoreconf工具。如果没有安装,可以使用以下命令安装: ``` sudo yum install autoconf automake libtool ``` 2. 接下来,使用wget命令下载protobuf安装包。例如,下载版本为3.21.9的protobuf安装包,可以使用以下命令: ``` wget https://github.com/protocolbuffers/protobuf/releases/download/v3.21.9/protobuf-cpp-3.21.9.tar.gz ``` 3. 解压下载的安装包,并进入解压后的目录: ``` tar -xvzf protobuf-cpp-3.21.9.tar.gz cd protobuf-3.21.9/ ``` 4. 运行autogen.sh脚本以生成配置文件: ``` ./autogen.sh ``` 5. 执行configure命令以配置protobuf安装路径: ``` ./configure ``` 6. 运行make命令进行编译: ``` make ``` 7. 使用sudo make install命令以管理员权限安装protobuf: ``` sudo make install ``` 8. 安装完成后,可以使用protoc --version命令来验证安装是否成功,并查看protobuf的版本号: ``` protoc --version ``` 以上是在旧版本的CentOS上安装protobuf的步骤。如果你使用的是新版本的CentOS,可以按照以下步骤进行操作: 1. 下载protobuf安装包并解压: ``` tar zvxf protobuf-all-3.6.1.tar.gz cd protobuf-3.6.1 ``` 2. 运行configure命令进行配置。你可以选择添加--prefix选项来指定安装路径: ``` ./configure --prefix=/usr/local/ ``` 3. 执行make命令进行编译。这个过程可能需要一些时间: ``` make ``` 4. 使用sudo make check命令运行测试: ``` sudo make check ``` 5. 最后,使用sudo make install命令以管理员权限安装protobuf: ``` sudo make install ``` 安装完成后,可以使用protoc --version命令来验证安装是否成功,并查看protobuf的版本号: ``` protoc --version ``` 通过按照以上步骤安装protobuf,你就可以在CentOS上成功安装和使用它了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油,旭杏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值