Learning——protobuf的下载

目录

一、protobuf在windows下安装

1.下载地址

2.配置环境变量

①打开设置

②搜索框中搜索编译环境变量

③ 点击“环境变量”

④ 找到PATH并双击打开编辑

 ⑤配置环境变量后点击确定

3.检验是否安装成功

二、protobuf在Linux下安装

1.库依赖安装

2.下载地址

我不能使用上述方法怎么办?

3.下载完成后,解压zip包: 

4.开始安装protobuf

我的make check操作出错了怎么办

5.性能测试成功​编辑

6.配置修改

7.重新执行 /etc/profile 文件:

8.检查是否安装成功


一、protobuf在windows下安装

1.下载地址

https://github.com/protocolbuffers/protobuf/releases?page=6

博主使用的是21.11版本,读者可根据自己情况自行下载。由于访问的是github上的项目有些读者可能没办法获取,博主会上传资源到CSDN,读者根据情况自行下载

下载windows版本的压缩包到本地,而后解压打开。

图1        压缩包内容

2.配置环境变量

把解压后的bin目录路径编辑到PATH中去

①打开设置

②搜索框中搜索编译环境变量

③ 点击“环境变量”

④ 找到PATH并双击打开编辑

 ⑤配置环境变量后点击确定

3.检验是否安装成功

打开cmd输入:

protoc --version

能查看到版本信息就说明安装成功 

二、protobuf在Linux下安装

1.库依赖安装

在开始之前确保安装了一下依赖库autoconf automake libtool curl make g++ 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

2.下载地址

https://github.com/protocolbuffers/protobuf/releases?page=6

 读者可根据自己情况自行安装,这里我们希望安装全语言支持的版本故在cmd中使用下列命令

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

我不能使用上述方法怎么办?

若不能下载,可以下载本博文上传的资源,资源中有相关压缩包。

下载后输入解压码:111

点击进入文件夹

如果你是Linux云服务器:

输入以下指令上传本地文件,如下图所示

rz
向云服务器上传本地文件

找到你下载的对应版本的protobuf压缩包上传即可。

3.下载完成后,解压zip包:
 

unzip protobuf-all-21.11.zip 

4.开始安装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操作出错了怎么办

make操作出错

这个错误是由于protobuf有一些测试用例,来要求服务器的资源来保证protobuf工具能够正常使用,这个时候需要增加swap分区,具体操作可参考这名博主的文章:

https://blog.csdn.net/AlexWang30/article/details/90341172

(建议可以先扩大3G,再执行make check。如果还是报错,再扩大到5G重新执行make check )

5.性能测试成功

6.配置修改

到此,需要你回忆⼀下在执行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/

7.重新执行 /etc/profile 文件:

source /etc/profile

8.检查是否安装成功

输入以下命令:

protoc --version

安装成功: 



 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot中的请求过滤filter与拦截interceptor分析

首先我们要定义一个类,实现标准的过滤器 import lombok.extern.slf4j.Slf4j;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException;WebFilter("/*") Slf4j public class AuthFilter implements Filter {Overr…

class 6: vue.js 3 组件化开发

组件化开发实际上就是问题拆解,分而治之。将页面拆分为一个个小的功能块,每个功能块负责完成属于自己的独立功能,这使得整个页面的管理和维护就变得非常容易了组件化可以简化开发进程,代码复用率更高,并有利于后期维护…

动态规划-最大子数组和

最大子数组和 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。 53. 最大子数组和 - 力扣(LeetCode) 示例…

在Nginx上部署前端Vue项目,超级简单!!

Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器,同时也是一个IMAP/POP3/SMTP代理服务器。 Nginx因其高性能、可扩展性、灵活性和免费开源等优势,在现代Web架构中得到了广泛应用。无论是作为Web服务器直接提供服务&…

Elasticsearch 索引模板

文章目录 前言Elasticsearch 索引模板1. 作用2. 示例3. 查询索引模板4. 测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的…

validationtools中按键测试选项光标移除

最近处理一个问题,设备有方向键盘,做cit中的按键测试,发现按方向键第一次按键不能触发该键值,而是让屏幕第一个按钮获取焦点,然后再次按键,则其他正常。问题:进入界面第一次按键就要响应对应按键…

html+css+js网页设计 故宫7个页面 ui还原度100%

htmlcssjs网页设计 故宫7个页面 ui还原度100% 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1…

sqlite3的db.interrupt方法深入解析

在Node.js环境中,sqlite3库是一个广受欢迎的轻量级数据库库,它为开发者提供了一个简洁的API来与SQLite数据库进行交互。在处理长时间运行或复杂的数据库查询时,有时可能需要中断这些查询。sqlite3库提供了db.interrupt方法来实现这一功能。本…

Anaconda安装和环境配置教程(深度学习准备)

目录 1.下载选择 2.prompt配置 3.虚拟环境配置 4.检查是不是安装成功 5.安装jupter 6.关闭anaconda重新进入 7.总结 1.下载选择 我第一次使用的这个官网上面的邮箱的方式下载的,但是这个方式真的特别慢,于是用了这个清华的镜像网站,网…

K8S日志收集

本章主要讲解在 Kubernetes 集群中如何通过不同的技术栈收集容器的日志,包括程序直接输出到控制台日志、自定义文件日志等。 一、有哪些日志需要收集 为了更加方便的处理异常,日志的收集与分析极为重要,在学习日志收集之前,需要知…

GitLab 是什么?GitLab使用常见问题解答

GitLab 是什么 GitLab是由GitLab Inc.开发,使用MIT许可证的基于网络的Git仓库管理工具开源项目,且具有wiki和issue跟踪功能,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 ​GitLab 是由 GitLab Inc.开发&#xff0c…

从0开始训练基于自己声音的AI大模型(基于开源项目so-vits-svc)

写在前面: 本文所使用的技术栈仅为:Python 其他操作基于阿里云全套的可视化平台,只需要熟悉常规的计算机技术即可。 目录 Step 1:注册及登录阿里云主机 Step 2:找到大模型项目 Step 3:创建大模型环境实例 Step 4:进入Ai_singer教程 Step…

代码随想录:动态规划41-44

300.最长递增子序列 题目 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7…

C语言之猜数字小游戏

哈喽,大家好!我是冰淇淋加点糖。今天我们来用前面所学的知识来开发一个猜数字的小游戏,锻炼我们的编程能力和编程思维。 猜数字小游戏功能简介 1.随机生成一个1-100的数字。 2.玩家用户开始猜数字。 > 猜大了,提醒猜大了…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-27浅谈XILINX BRAM的基本使用

软件版本:VIVADO2021.1 操作系统:WIN10 64bit 硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台:米联客-MLK-H3-CZ08-7100开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

C#/WinForm 演示遗传算法

一、一览 二、遗传算法流程 种群初始:随机生成一组N个DNA,每个DNA上都有S个基因,每个DNA都有自己的r值(适度值)。r最大的DNA为种群最优。 选择操作:将每个DNA的r值占总体的比例作为新一代选取的概率&#…

2024 【Delphi 12】苹果ios开发环境配置(五星保姆级)

目录 一、创建证书 1. 创建证书签名请求:(在苹果电脑上操作): .certSigningRequest 文件 2. 创建证书:在苹果的 开发者网站 上操作 重复以上步骤并下载对应的证书文件如下: 3. 创建标识符(…

Debezium+Kafka:Oracle 11g 数据实时同步至 DolphinDB 运维手册

目前我们已经支持基于开源技术 Debezium Kafka,从 Mysql 和 Oracle 11g 实时同步数据到 DolphinDB 中。由于当前方案涉及到四个程序的部署,而且具体的 Source 同步任务和 Sink 同步任务还需要额外管理,在运维上具有一定难度。 本文将基于 O…

前端框架的演变与选择

目录 前端框架的演变与选择 1. 什么是前端框架? 2. 前端框架的演变 2.1 早期的Web开发 2.2 JavaScript库的兴起 2.3 MVC架构的引入 3. 现代前端框架概览 3.1 React 3.2 Vue.js 3.3 Angular 4. 其他值得关注的前端框架 4.1 Svelte 4.2 Ember.js 5. 如何…

【大数据】生活中三大数据的概念及其关系

数据库、数据结构和大数据之间存在密切的关联,它们共同构成了计算机科学和信息技术领域中的重要组成部分。以下是对这三者之间关系的详细阐述: 1. 数据库与数据结构的关联 数据结构是数据库的基础:数据库用于存储和管理大量数据,而这些数据的组织方式正是基于数据结构。数…