【protobuf入门学习(一)】 —— protobuf安装教程

2024-08-27 19:36

本文主要是介绍【protobuf入门学习(一)】 —— protobuf安装教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

(一)protobuf 的基本介绍

1. 序列化概念

 2. ProtoBuf 是什么

 3. ProtoBuf 的使用特点

(二)protobuf 安装

2.1 protobuf ——Windows

        1. 下载ProtoBuf编译器

2. 配置环境变量

 3. 检查是否配置成功 

2.2 protobuf —— Linux

1、下载ProtoBuf

2、安装ProtoBuf 

3、检查是否安装成功


(一)protobuf 的基本介绍

1. 序列化概念

序列化和反序列化

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

什么情况下需要序列化

  • 存储数据:当你想把的内存中的对象状态保存到⼀个⽂件中或者存到数据库中时。
  • ⽹络传输:⽹络直接传输数据,但是⽆法直接传输对象,所以要在传输前序列化,传输完成后反 序列化成对象。例如我们之前学习过socket编程中发送与接收数据。

如何实现序列化  

  • xml 、json、protobuf 

2. ProtoBuf 是什么

protobuf  是由 Google 开发的一种语言无关、平台无关的可扩展机制,用于序列化结构化数据,类似于 XML 或 JSON,但更小、更快、更简单。Protobuf 通过定义数据结的 .proto 文件来描述数据的格式,然后使用 Protobuf 编译器(protoc)生成特定语言的数据访问类。

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

  • 高效性:生成的代码在序列化和反序列化数据时比 XML 和 JSON 更快,占用空间更小。
  • 跨语言支持:支持多种编程语言,如 C++, Java, Python 等。
  • 扩展性:可以在不破坏现有代码的情况下添加新的字段。
  • 二进制格式:数据以二进制形式存储,这使得它比文本格式(如 XML 和 JSON)更紧凑,但可读性较差。

3. ProtoBuf 的使用特点

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

(二)protobuf 安装

2.1 protobuf ——Windows

1. 下载ProtoBuf编译器

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

可以不⽤下载最新版本,我以v27.2为例,具体的下载根据自己电脑情况选择

下载之后将压缩包解压到本地⽬录下。解压后的⽂件内包含bin、include⽂件,以及⼀个readme.txt.


 2. 配置环境变量

把解压后⽂件中的bin⽬录配置到系统环境变量的Path中去


3. 检查是否配置成功 

打开cmd

  • 输⼊: protoc--version

查看版本,有显示说明成功

到这一步,恭喜你ProtoBuf安装成功!!! 


2.2 protobuf —— Linux

1、下载ProtoBuf

下载ProtoBuf前⼀定要安装依赖库:autoconfautomakelibtoolcurlmakeg++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为例:

  • 如果要在C++下使⽤ProtoBuf,可以选择cpp.zip
  • 如果要在JAVA下使⽤ProtoBuf,可以选择java.zip
  • 其他语⾔选择对应的链接即可。 
  • 希望⽀持全部语⾔,选择all.zip

在这⾥我们希望⽀持全部语⾔,所以选择protobuf-all-21.11.zip,右键将下载链接复制出来。 下载命令:

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

下载完成后,解压zip包:

unzip protobuf-all-21.11.zip

解压完成后,会⽣成 protobuf-21.11 ⽂件,进⼊⽂件:


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


 3、检查是否安装成功

输⼊ protoc --version 查看版本,有显⽰说明安装成功。

这篇关于【protobuf入门学习(一)】 —— protobuf安装教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112582

相关文章

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas