【Protobuf速成指南】Win/Centos7下Protobuf安装教程

文章目录

  • 安装教程
    • 一、Windows
      • 1.1 下载编译器
      • 1.2 配置PATH
      • 1.3 其他依赖项
    • 二、Centos7
      • 2.1 安装必要的工具
      • 2.2 下载安装包
      • 2.3 安装

安装教程

以版本为V21.11为例说明

一、Windows

1.1 下载编译器

下载地址:链接,一直往下翻找到 V21.11版本

image-20230604191527393

win用户根据自己的电脑情况选择合适的版本
image-20230604191608785

1.2 配置PATH

解压后的文件包含下面的内容:

image-20230604192635078

我们需要将 bin 文件中的可执行程序配置到PATH环境变量中

image-20230604192854805

配置完成后再cmd窗口输入 protobuf --version 验证是否安装成功

image-20230604193005173

1.3 其他依赖项

 经过上面的操作,我们已经成功下载了 Proto 的编译器,可以简单地使用Protobuf 进行序列化和反序列化。如果要使用某些高级特性或功能,使用下面的指令一键解决依赖关系:(vcpkg 是一个开源的 C++ 库管理器,需要预先安装)

> vcpkg install protobuf protobuf:x64-windows

二、Centos7

2.1 安装必要的工具

sudo yum install autoconf automake libtool curl make gcc-c++ unzip

2.2 下载安装包

image-20230604195151173

 我们上篇博客提到,Protobuf 是跨语言的协议,支持多种编程语言,包括 C++、Java、Python 等常见语言。这是由我们代码生成插件决定的

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

这里以 all.zip 举例说明

  1. 我们可以在本地下载并通过 sz 指令上传到我们的服务器

  2. 也可以使用wget指令拉取下载内容

    image-20230604200025990

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

🎯[对比]:

  • protoc-21.11-win64.zip 是 Protobuf 编译器的 Windows 版本发布文件,其中只包含 Protobuf 编译器本身及其代码生成插件

  • protobuf-all-21.11.zip 是 Protobuf 的完整源码包,除了编译器和插件之外,还包括了库的源代码、示例代码、用于测试的代码和其他相关文件。该源码包可以支持 C++、Java、Python、Go、C#、Ruby、PHP 和 Objective-C 等多种编程语言。更适合开发者使用

2.3 安装

  1. 解压zip包:unzipprotobuf-all-21.11.zip

  2. 进入解压后的文件,执行以下命令

    # 第⼀步执行autogen.sh,但如果下载的是具体的某⼀门语言,不需要执行这⼀步。
    ./autogen.sh
    # 第⼆步执行configure,有两种执行方式,任选其⼀即可,如下:
    # 1、protobuf默认安装在 /usr/local 目录,lib、bin都是分散的
    ./configure
    # 2、修改安装⽬录,统⼀安装在/usr/local/protobuf下
    ./configure --prefix=/usr/local/protobuf
    

    image-20230604201431978image-20230604201644095

  3. 依次执行

    make       # 执行15分钟左右
    make check # 执行15分钟左右  (非必要)
    sudo make install
    
  4. 在configure的时候,如果你采用第一种方式,那么就可以正常使用Protobuf了,如果采用第二种方式,还需要为lib和include配置路径

    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/
    
  5. 重新执行配置文件

    source /ect/profile
    
  6. 检测是否安装成功。有版本显示说明安装成功

    protoc --version
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/351022.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

去除迅雷极速版 提示升级的广告

转载于:https://www.cnblogs.com/x-huihui/p/10926954.html

迅雷精简版 4.0.0 Mac中文版

迅雷精简版是一款非常实用的下载工具,体积轻巧但是下载速度却依然很快,采用与浏览器结合的方式,让用户在享受极速下载模式的同时也能流畅上网,系统性能依然稳定,而且迅雷精简版没有广告,给用户更好的上网体…

迅雷精简版 for Mac 去除多余无用功能

推一款非常给力、速度又快的专业下载工具mac迅雷精简版,普通的非VIP迅雷软件往往会出现一些下载限速,体验上相对并不是很好,而迅雷极速精简版则更好的解决了这个问题,其界面清爽简约,无广告,下载速度快&…

[Android] 安卓迅雷带云盘内测版7.0 简洁 无广告 官方版

迅雷内测版本 界面 简洁 无广告 带云盘功能 我也不多说 大家都知道迅雷APP 版本德性 全是广告 直接上图 跟链接 对于我说 内测版本 属实香 看不到一点广告 下载地址: https://n802.com/file/349707-458153240 http://www.yimuhe.com/file-4770885.html http://www.369pan.c…

2015 年一月联考逻辑真题

2015 年一月联考逻辑真题 真题(2015-26) 26.晴朗的夜晚我们可以看到满天星斗,其中有些是自身发光的恒星,有些是自身不发光但可以反射附近恒星光的行星。恒星尽管遥远,但是有些可以被现有的光学望远镜“看到”。和恒星不…

python使用requests+excel进行接口自动化测试

在当今的互联网时代中,接口自动化测试越来越成为软件测试的重要组成部分。Python是一种简单易学,高效且可扩展的语言,自然而然地成为了开发人员的首选开发语言。而requests和xlwt这两个常用的Python标准库,能够帮助我们轻松地开发…

navicat与SQLyog的区别

在之前的学习中由于先学的SQL Server,后来才学的MySQL,导致我刚学习的时候冥冥之中感觉到那有点不对劲,但是又说不出来。通过进行深入的学习解除到了Navicat Premium和SQLyog这两个工具,才让我明白了MySQL与之前学习的内容是有所出…

usb2.0-crw出现黄色叹号

最近点开设备管理器发现了许多黄色感叹号: 解决方案: 进入电脑官网,我的是DELL,搜索"驱动与下载dell",输入自己的电脑型号,在手动搜索的模块里找主板芯片组,下载并安装。

postgrsql 增加字段

alter table 表名 add 字段名 数据类型; 不支持指定位置增加列,增加的列在末尾。 实例:alter table crw_it.ncs_ccs_stmt_zdhk add stmt_no varchar; crw_it是模式名(schema)

STM32单片机蓝牙APP语音识别取暖器GSM短信超温报警

实践制作DIY- GC0141-蓝牙APP语音识别取暖器 基于STM32单片机设计---蓝牙APP语音识别取暖器 二、功能介绍: 电路:STM32F103C最小系统DS18B20温度传感器 多个按键 LCD1602显示器 1个串口语音识别模块1个5V 加热片 模拟加热蜂鸣器SIM800 GSM短信模块 HC0…

ubuntu下依靠guvcview使用摄像头

1.检验系统是否可以检测到设备 $ lsusb Bus 001 Device 040: ID 046d:0825 Logitech, Inc. Webcam C270 如果没有相关的信息说明系统的驱动未安装。 2.检验摄像头的端口 ls -la /dev/vid* crw-rw---- 1 root video 81, 0 Feb 12 2016 /dev/video0 crw-rw---- 1 root vid…

降本增效,StarRocks 在同程旅行的实践

作者:周涛 同程旅行数据中心大数据研发工程师 同程旅行是中国在线旅游行业的创新者和市场领导者。作为一家一站式平台,同程旅行致力于满足用户旅游需求,秉持 "让旅行更简单、更快乐" 的使命,主要通过包括微信小程序、AP…

CRC16浅析

CRC即循环冗余校验码(Cyclic Redundancy Check),是数据通信领域中最常用的一种查错校验码。奇偶校验虽然简单,但是漏检率太高,而CRC则要低的多,所以大多数都是使用CRC来校验。CRC也称为多项式码。 任何一个…

【Linux】关于Linux中的权限

文章目录 前言Linux权限文件访问者的分类(人)文件类型和访问权限(事物属性)文件类型基本权限 目录的权限粘滞位权限的总结 前言 前面我们已经知道。Linux下有两种用户:超级用户(root)、普通用户…

Linux ALSA音频驱动二:ALSA驱动注册

在系统/dev/snd下可查看注册成功的声卡信息,如下所示。 ubuntuubuntu:~$ ls -l /dev/snd total 0 drwxr-xr-x 2 root root 60 4月 7 09:22 by-path crw-rw---- 1 root audio 116, 2 4月 7 09:22 controlC0 // 通路控制 crw-rw---- 1 root audio 116,…

CRC编码

循环冗余校验(Cyclic Redundancy Check, CRC) 原理:先在要发送的帧后面附加一个二进制数,(用来校验的校验码);生成一个新帧发送给接收端 附加的二进制数要求:使所生成的新帧能与发送端和接收端共同选定的某个特定数整除 运算:这里…

CLR简介

CLR简介 什么是CLR CLR英文全称Common Language Runtime,即公共语言运行时。 乍一看到这个概念确实不明白,什么是语言运行时? 简单来说,就是一个程序运行所需要的环境,包括各种资源、各种操作等等。 通常来说&…

CRF概述

主要参考 1.李航统计学习方法 2.一个声音好听的小姐姐的讲解视频https://www.bilibili.com/video/av752902225/ 3. 白板推导系列视频 https://www.bilibili.com/video/BV19t411R7QU?p1 一、背景介绍 1、背景算法介绍 HMM,隐马尔可夫模型,是生成模…

CRC-16

文章目录 A.1 CRC16 算法A.1.1 CRC16 算法参数设置A.1.2 LengthA.1.3 CounterA.1.4 Data IDA.1.5 CRCA.1.6 CRC16 算法示例A.1.7 CRC16 算法推荐(查表法)A.1.8 CRC16 实例(查表法) A.1 CRC16 算法 A.1.1 CRC16 算法参数设置 CRC16 算法中要求了 Counter、Data ID、CRC 等参数…

CRF

随机场:由若干个子集组成的一个整体,而每个子集都按照某个分布随机赋予一个值,这个场就叫随机场。 马尔科夫随机场:随机场中某一位置的赋值仅与其相邻位置的赋值有关,和与其不相邻位置的赋值无关。 CRF是马尔科夫随机…