当前位置:   article > 正文

protobuf学习笔记_protobuf官网

protobuf官网

protobuf官方网址:https://developers.google.com/protocol-buffers
github源码:https://github.com/protocolbuffers/protobuf

1. protobuf是什么

“Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. ”

Protocol Buffers(协议缓冲区)是一种语言中立、平台中立的可扩展机制,用于序列化结构化数据,类似于XML和json,但protobuf更小巧,更快速,更简单

简单点说,protobuf就是一种用于数据传输时将数据序列化和反序列化的一个跨平台(支持目前主流的各种语言)工具库,我们可以自定义传输的数据格式(类似C++中的结构体),我们就将这个格式称为一种协议,我们将这个数据传输协议写好,也就是我们需要写的".proto"文件,然后通过proto工具通过命令就可以生成我们需要的文件,例如对于C++,我们写好.proto文件后,在Linux或cmd中在.proto同级下输入命令,protoc --cpp_out=. ./文件名.proto,就会生成两个"文件名.pb.cc"和"文件名.pb.h"的文件,这个生成的文件中proto给我们封装好了各种方法,包括对某个字段的get和set方法(不过不是直接使用get和set函数,其他函数名,先往后看),以及序列化和反序列化的函数都给我们直接生成了,直接使用,非常方便。

2. protoc的安装

官方安装教程:https://github.com/protocolbuffers/protobuf/blob/master/src/README.md

2.1 Linux(CentOS)安装protoc步骤:

首先需要安装:

  • autoconf
  • automake
  • libtool
  • make
  • g++
  • unzip

直接使用yum安装,例如yum install autoconf,此外安装g++的时候不是直接使用yum install g++,而是 yum install gcc-c++

如果yum找不到的话就先安装一下epel,命令是yum install -y epel-release,因为CentOS是开源的,很多软件可能没有,epel相当额外的一个应用商城,可以扩充yum的软件库。

此外还需要安装cmake3,yum install cmake3,如果下面安装的时候依然找不到,那就给cmake3软连接到cmake,因为默认命令可能是直接用cmake,而cmake3的命令要用cmake3,使用下面命令 ln -s /usr/bin/cmake3 /usr/bin/cmake,就可以创建一个类似于快捷键的东西,让cmake指向cmake3

然后按照如下方式安装(下面的方法不是官方的方法,我之前使用官方方法安装会提示缺少一些库导致安装失败,使用下面的方法不会报错,可能官方方法的更适合unix,CentOS上会有一些问题)

wget这里可以自定义需要安装的版本,这里是proto3

cd /opt
wget -O protobuf-3.17.3.tar.gz https://codeload.github.com/protocolbuffers/protobuf/tar.gz/refs/tags/v3.17.3
tar -zxf protobuf-3.17.3.tar.gz
cd protobuf-3.17.3/cmake/
mkdir build && cd build
cmake … -Dprotobuf_BUILD_TESTS=OFF
make -j4 install

安装好后使用 proto --version命令看看是否出现版本号,出现则代表安装成功

2.2 windows安装protoc步骤:

直接去githun下载后,然后解压,然后再在环境变量里面配置一下即可,在环境变量中,Path一栏加入解压后的bin目录即可,例如D:\protoc-3.17.3-win64\bin,然后到cmd中使用 pr

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/907216
推荐阅读
相关标签
  

闽ICP备14008679号