Protobuf安装步骤

2023-11-20

今天看Brpc开源代码的时候,看到了里面提到了google开源的protobuf的数据序列化和反序列工具,所以特地下了源码,试着看下一个简单的使用过程。

1、protobuf的介绍

google protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。google protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++、C#、Go等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。

更详细的介绍直接看google开源的主页:
https://developers.google.com/protocol-buffers/

下面看简单的一个安装步骤

2、下载源码

注意,网上的一些教程都有些误会,如果要用configure的方式进行安装,需要下载已经打包好的压缩包,下载的链接如下:
https://developers.google.com/protocol-buffers/docs/downloads
并不是git上的那个源码版本,git上的版本并没有写配置configure文件

3、安装protobuf

安装步骤比较固定,和其他的安装一样,如下:

tar -xvf protobuf
cd protobuf
./configure --prefix=/usr/local/protobuf
make
make check
make install

注意:如果你直接安装以下步骤,安装成功,那么是幸运的,因为没有碰到编译上的问题。
如果在编译上遇到了如下问题:

configure: error: sched_yield was not found on your system

那么你可以看log问题,观察编译的时候是哪里报错了,如果看到了报错内容如下:

error: unrecognized command line option "-std=c++11"

那么原因就是你系统的gcc版本过低,需要手动升级到高版本的gcc上,如何手动升级gcc,可以参考我的这一篇博文:CentOS 6.7手动升级gcc

4、安装完成之后,配置protobuf命令
更改环境变量:
vim /etc/profile
在文件的末尾添加如下的两行:
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

更改完成之后,执行如下命令立即执行:

source /etc/profile

这一步是必须的,因为如果少了这一步,会出现找不到protoc的命令错误。

配置动态链接库
vim /etc/ld.so.conf
在文件中添加/usr/local/protobuf/lib(注意: 在新行处添加)

更改完成之后,执行如下命令立即执行:

ldconfig
5、安装完成

此时,安装和配置完成,可以使用google提供的实例,进行protobuf的使用。

参考文献:
https://www.cnblogs.com/luoxn28/p/5303517.html
https://developers.google.com/protocol-buffers/docs/downloads

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Protobuf安装步骤 的相关文章

  • C#使用ProtoBuf

    1 Google ProtoBuf 经过测试 xff0c protobuf比json存储效率还是要高 xff0c 即时号称最快的fastjson也没有protobuf快 xff0c 这里为了使用 c 做一个客户端兼容 xff0c 所以也需要
  • vs2015的OpenCV3.2.0编译

    我们希望添加第三方功能模块和库或者针对特定cpu和gpu的编译调整优化选项 这样的需求就需要自己去编译opencv了 准备东西 opencv opencv contrib cmake 还有两个文件 因为可能是国内的原因 在configure
  • protobuf快速上手

    protobuf快速上手 一 序列化与反序列化 序列化与反序列化的场景 常用的工具 二 protobuf工作原理 三 快速上手 protobuf中的数据类型 proto文件格式 编译选项 快速上手 四 通讯录demo 编写proto文件 编
  • protobuf下载与安装+ protobuf 与json相互转换方法

    WIN环境 下载与安装 下载 https github com protocolbuffers protobuf releases 官方git地址 目前最新的是3 8版本 我是c 环境 选择cpp下载包 protobuf cpp 3 8 0
  • proto文件生成教程

    来源 https www cnblogs com jbw752746541 p 10973200 html 首先贴一下Protobuf各个版本历史下载链接 https github com protocolbuffers protobuf
  • protoc 同时编译多个.protoc文件

    官方的示例 只是编译一个文件的命令行 protoc proto path IMPORT PATH cpp out DST DIR java out DST DIR python out DST DIR go out DST DIR ruby
  • Win10 下 ProtoBuf 安装编译以及在 C++ 中的用法

    ProtoBuf Protocol Buffer protoBuf 或 PB 是 google 的一种数据交换的格式 它独立于语言 独立于平台 google 提供了多种语言的实现 java c c go 和 python 每一种实现都包含了
  • protobuf介绍和语法

    目录 前言 语法 标识符 字段 字段类型 proto2和proto3区别 前言 Protobuf即Protocol Buffers 是Google公司开发的一种跨语言和平台的序列化数据结构的方式 是一个灵活的 高效的用于序列化数据的协议 与
  • protobuf c++编程笔记

    文章目录 字段内容的定义 修饰符 字段类型 引用方式 不同字段的方法 1 optional修饰的基本类型 2 optional修饰的对象类型 3 repeated修饰的基本类型 4 repeated修饰的对象类型 序列化 反序列化 字段内容
  • 【Protobuf】pb中类型字段不匹配问题

    文章目录 背景 结论 原始数据 测试1 测试2 背景 客户端更新proto 新增message字段 探索新增字段的数据类型和标签对服务端反序列化数据的影响 结论 新增字段数据类型与服务端相同标签数据类型 不同 无法获取数据 但是不报错 相同
  • Protobuf在java中的简单使用实例

    TTprotobuf是一种跨语言的数据转换协议 由google开源的 已支持大部份语言 在一般的数据交互过程中都是使用json xml等来做数据的转换 这其中涉及复杂的解析与序列化反序列化问题 如果在大量数据并发请求时 也会导致性能问题 p
  • Protobuf下载和编译

    系列导航 一 Protobuf下载和编译 二 Protobuf在Java中的简单使用 一 简介 protobuf全称Google Protocol Buffers 是google开发的的一套用于数据存储 网络通信时用于协议编解码的工具库 是
  • protobuf安装教程

    protobuf安装 一 Windows下安装 下载protobuf 配置环境变量 检查是否安装成功 二 Linux下安装 下载protobuf 安装protobuf 检查是否安装成功 一 Windows下安装 下载protobuf 下载地
  • Ubuntu 下配置protobuf

    首先得到 protobuf 相应的包文件 在终端上输入如下 wget http protobuf googlecode com files protobuf 2 5 0 tar gz 由于 现在 protobuf 2 5 0 tar gz已
  • C++下的protobuf简单使用

    Google Protocol Buffer API简单使用总结 大致步骤如下 1 编写 msg proto 文件 package lm 我理解成命名空间 message helloworld 我理解成类 required int32 id
  • vs2019 中编译和使用 protobuf 库

    背景 protobuf 是一种跨平台的序列化结构数据的方法 可用于网络数据传输及存储 本文对使用 vs2019 编译 protobuf 库文件进行说明 相关代码及安装文件均来自官网下载 VS2019 编译 protobuf 生成 sln 工
  • ProtoBuf-反射原理与使用

    文章目录 前言 相关应用场景 一 ProtoBuf 反射原理概述 1 获取message和service的属性和方法 1 1 使用protoc将proto文件生成 h和 cc文件 1 2 只使用proto文件 不使用protoc进行编译 1
  • Hello! protobuf——编译与安装(c++版)

    目录 前言 一 protobuf是什么 二 protobuf官方路径 三 protobuf编译安装 1 安装前建议 2 cmake使用 1 cmake介绍 2 命令行介绍 3 编译选项介绍 4 cmake安装 3 windows下使用nma
  • google.api.http

    Http 定义api服务的http配置 它包含一个httprule列表 每个列表指定一个rpc方法到一个或多个http rest api方法的映射 字段 描述 rules HttpRule 一个适用于各个API方法的http配置规则列表 注
  • 2. IDEA + maven + protobuf配置(on mac)

    1 絮絮叨叨 都说懒惰是人类进步的源泉 有时候想想还真就那么回事 学习了如何使用protoc命令编译 重度依赖IDEA且已经习惯了maven的我 就在想是否能在IDEA中一键编译 proto文件 2 vscode配置protobuf编辑环境

随机推荐

  • sklearn包MLPClassifier的使用详解+例子

    MLPClassifier 参数说明 hidden layer sizes 元组形式 长度n layers 2 默认 100 第i元素表示第i个神经元的个数 activation identity logistic tanh relu 默认
  • Vue3中的pinia使用(收藏版)

    1 pinia介绍 个人网站 紫陌 笔记分享网 想寻找共同学习交流 共同成长的伙伴 请点击 前端学习交流群 pinia 是 Vue 的存储库 它允许您跨组件 页面共享状态 就是和vuex一样的实现数据共享 依据Pinia官方文档 Pinia
  • 【Python】Python 模式匹配与正则表达式

    Python 模式匹配与正则表达式 1 模式匹配与正则表达式 你可能熟悉文本查找 即按下Ctrl F 输入你要查找的词 正则表达式 更进一步 它们让你指定要查找的 模式 你也许不知道一家公司的准确电话号码 但如果你住在美国或加拿大 你就知道
  • 21,verilog之宏define介绍

    注 学习 交流就在博主的个人weixin公众号 FPGA动力联盟 留言或直接 博主weixin fpga start 私信 宏define提供用一个相对简单的文字来表示一大段真正有意义的文字作用 换句话说 就是综合软件见到定义的宏 就用这个
  • uni-app页面点击tab左右滑动(swiper)

    uni app基于
  • 自动化测试工具——selenium 用前须知

    OK 经过上的过程 我相信你一定做出的相应的选择 如果你选择的是selenium 工具 那么接着往下阅读 首选你在开始selenium之前 需要花一到两个月时间去学一门语言 这里是根据没有语言基础的同学而定的 我推荐ruby python
  • swing重定向输出到jtextArea

    import java awt Font import java io IOException import java io OutputStream import java io PrintStream import javax swin
  • Android Studio 中模拟器无法打开,提示Error launching emulator

    一 遇到的问题 运行模拟器时 提示 Error launching emulator 二 解决方法 打开SDK Manager 点击取消Android Emulator 然后重新运行 会提示下载一些文件 按着操作即可 如果没问题就不需要取消
  • 深入解析String intern()

    在 JAVA 语言中有8中基本类型和一种比较特殊的类型String 这些类型为了使他们在运行过程中速度更快 更节省内存 都提供了一种常量池的概念 常量池就类似一个JAVA系统级别提供的缓存 8种基本类型的常量池都是系统协调的 String类
  • Python3.8安装tensorflow

    我现在的版本是3 8 8 64 bit 编辑器是Visual Studio Code 之前试过好多次都失败了 都是因为Python的版本和tensorflow版本的各种问题 后来下过anaconda 用不习惯 还是回来捯饬Visual St
  • onenote导入html文件,office js - OneNote Add in: Getting HTML content - Stack Overflow

    In the example code is provided to get RichText It is able to get the plain text content of the page but I cannot seem t
  • css之id选择器和class类选择器

    一 css基础 css定义 可以设置网页中的样式 外观 美化 css中文名字 级联样式表 层叠样式表 样式表 二 css基础语法 1 style标签写在title标签后面 2 选择器 属性名1 属性值1 属性名2 属性值2 color 代表
  • leetcode第8场双周赛

    这次双周赛有意外 第二第三题按照提示返回int 会报错 要返回List 第一题 给你一个字符串 S 返回只含 单一字母 的子串个数 示例 1 输入 aaaba 输出 8 解释 只含单一字母的子串分别是 aaa aa a b aaa 出现 1
  • axios和Ajax

    Ajax 由客户端请求ajax引擎 再由ajax引擎请求服务器 服务器作出一系列响应之后返回给ajax引擎 由ajax引擎决定将这个结果写入到客户端的什么位置 实现页面无刷新更新数据 创建Ajax步骤 1 创建异步对象 2 设置回调函数 U
  • 在ubuntu18.04上搭建的海思Hi3516EV200的编译环境

    准备工作 下载交叉编译工具 百度网盘 https pan baidu com s 1AL3EztPUpWZOpxdbyEnI w 提取码 w2k7 ubuntu版本 uname v 55 18 04 1 Ubuntu SMP Mon Jun
  • matlab 计算点云中值

    目录 一 概述 1 算法概述 2 主要函数 二 代码示例 三 结果展示 四 参数解析 输入参数 输出参数 五 参考链接 本文由CSDN点云侠原创 原文链接 如果你不是在点云侠的博客中看到该文章 那么此处便是不要脸的爬虫 一 概述
  • Git的使用(gitbash命令创建版本库)

    1 git的安装 msysgit gitbash 2 创建repository 路径名不要含有中文 pwd 查看当前路径 cd mkdir gitLearn 创建目录 cd gitLearn 进入路径 git INIT 初始化 编程git可
  • 如何替换对象的key值

    发生的场景 现在用antd组件库 有些组件想渲染数据的话 我要根据他们官网给的字段名称对应起来才能渲染上去 这个是复选框选中 保存的时候 字段需要按照后台约定的传入code value 1 常规循环遍历 大招来了 哈哈哈 才疏学浅 我觉得是
  • Python学习----第十章--文件和异常及json

    1 读取文件 lstrip 删除左边空白符 rstrip 删除右边空白符 strip 删除两端空白符 window 读取文件可以用 但是在字符串中 是被当作转义字符来使用 经过转义之后可能就找不到路径的资源了 例如 t会转义为tab键 这里
  • Protobuf安装步骤

    今天看Brpc开源代码的时候 看到了里面提到了google开源的protobuf的数据序列化和反序列工具 所以特地下了源码 试着看下一个简单的使用过程 1 protobuf的介绍 google protobuf是一个灵活的 高效的用于序列化