目录
一、Protobuf
1.回顾序列化
2.Protobuf的特性
3.Protobuf的下载
①ProtoBuf 在 window 下的安装
②ProtoBuf 在 Linux 下的安装
一、Protobuf
1.回顾序列化
我们在先前的学习中也遇到过序列化。所谓序列化我的理解是,将复杂的对象以特定的方式转换以便于存储或者传输。
像以前在网络传输信息时用到的JSON或者XML,或者将对象永久化存储时用到的方法,都是序列化的方式。
我们今天接触到的Protobuf也是一种将结构化的数据序列化的方法。
Protocol Buffers 是 Google 的⼀种语⾔⽆关、平台⽆关、可扩展的序列化结构数据的⽅法,它可⽤ 于(数据)通信协议、数据存储等。
2.Protobuf的特性
简单来讲, ProtoBuf(全称为 Protocol Buffer)是让结构数据序列化的⽅法,其具有以下特点:
·语言无关,平台无关:即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多平台。
·高效:即比 XML 更小、更快、更为简单。
·扩展性、兼容性好:你可以更新数据结构,⽽不影响和破坏原有的旧程序。
想平常我们写一个类,如果有必要的话,需要自己写一些处理该的⼀系列接口方法 (例如:序列化和反序列化方法),当使用了Protubuf我们就不用自己写了。
总的来说:ProtoBuf 是需要依赖通过编译生成的头文件和源文件来使用的。
3.Protobuf的下载
①ProtoBuf 在 window 下的安装
下载地址:https://github.com/protocolbuffers/protobuf/releases
当前讲述的版本为v21.11.
下载对应的版本之后,我们需要配置系统的环境变量。
复制解压后的文件路径。
打开编辑系统环境变量,点击环境变量,编辑path,将复制到的路径添加进去。 如何检查是否安装并配置成功呢?
打开cmd,输入protoc --version,得出版本号即为成功。
②ProtoBuf 在 Linux 下的安装
下载 ProtoBuf 前⼀定要安装依赖库:autoconf automake libtool curl make g++ unzip
sudo yum install autoconf automake libtool curl make gcc-c++ unzip
下载地址:https://github.com/protocolbuffers/protobuf/releases
右键复制连接,在linux中使用wget命令。
下载之后的zip文件:
我们将它解压:
第⼀步执⾏autogen.sh,但如果下载的是具体的某⼀⻔语⾔,不需要执⾏这⼀步。 ./autogen.sh
第二步修改安装⽬录,统⼀安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf
再依次执⾏
1.make // 执⾏15分钟左右
2.make check // 执⾏15分钟左右
3.sudo make install
还需要在/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
输⼊ protoc --version 查看版本,有显⽰说明安装成功。