protobuf安装教程

news2024/11/16 5:42:40

protobuf安装

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

一,Windows下安装

下载protobuf

下载地址
本次下载以v21.11为例,根据自己需求下载即可。

在这里插入图片描述

配置环境变量

🚀下载压缩包后解压就能看到三个文件
在这里插入图片描述
将bin目录的路径添加到系统的环境变量中。
在这里插入图片描述
在这里插入图片描述

检查是否安装成功

🚀打开cmd窗口,输入protoc --version 查看protobuf版本即可
在这里插入图片描述
上图,这样代表安装成功。

二,Linux下安装

下载protobuf

🚀下载prorotobuf之前一定要安装依赖库:

对于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

下载地址
同样是以21.11版本为例:
在这里插入图片描述

可以看到protobuf是支持多语言的,如果你是C++用户直接下载-cpp即可,java等类似。如果你想适用于多种语言可以选择-all的安装包。

在这里插入图片描述
🚀使用wget获取资源。

wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-cpp-3.21.11.zip

在这里插入图片描述

🚀下载成功后使用unzip指令解压压缩包。

unzip protobuf-cpp-3.21.11.zip

🚀解压完成后得到protobuf-21.11文件,其内容有:

在这里插入图片描述

安装protobuf

1.第一步执行autogen.sh,但如果下载的是具体的某一门语言,不需要这一步。
./autogen.sh
2.第二步执行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出现以下场景也是不影响使用的:
在这里插入图片描述
🚀最后一步,如果在执行configure时选择的第一种形式,那么你现在就能使用protobuf了。如果选择的第二种方式,还需在系统的环境变量配置文件中添加一些内容:

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/

🚀修改配置文件后别忘了,让配置文件生效!!!

source /etc/profile

检查是否安装成功

protoc --version

在这里插入图片描述

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

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

相关文章

VL163的基本信息

VL163是2:4差分通道多路复用/demux开关USB 3.1应用,为交换机信号性能支持高达USB 3.1,并使用QFN-28 3.5x4.5mm绿色封装。 VL163 QFN28 只能处理2Lane数据信号。自己没有CC识别沟通协议,如果要做USB-C Swtich,就要通过别的USB-C协…

Python计算统计分析MSE 、RMSE、MAE、R2

1、平均绝对误差 (MAE)Mean Absolute Error,是绝对误差的平均值,能更好地反映预测值误差的实际情况。范围[0,∞),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。 2、均方误差 MSE(mean…

团簇大小分布计算方法,fix ave/histo命令详解

LAMMPS是一款广泛应用于分子动力学模拟的强大软件。在模拟过程中,我们经常需要对系统的物理性质进行分析和统计。 fix ave/histo命令则是LAMMPS中一个非常有用的命令,它可以帮助我们对系统进行直方图统计分析。 本文将深入介绍fix ave/histo命令的用法和…

CentOS 搭建 GitLab Git

本文目录 1. CentOS7 搭建 Gitlab1. 安装 sshd1. 安装 sshd 依赖2. 启动并设置开机自启3. 安装防火墙4. 开启防火墙5. 开放 ssh 以及 http 服务 2. 安装 postfix1. 安装 postfix2. 启动并设置开机自启3. 几个补充知识 3. 下载并安装 gitlab1. 在线下载安装包2. 安装 4. 修改 gi…

保障大文件传输数据完整性的策略探讨

随着互联网技术的快速发展,越来越多的文件需要进行传输。而在大文件传输中,数据完整性尤为重要,因为数据一旦丢失或损坏,将对文件的可用性和可靠性产生负面影响。因此,保障大文件传输数据完整性成为了互联网技术领域中…

基于java的坦克大战游戏的设计与实现--毕业论文--【毕业论文】

文章目录 本系列校训毕设的技术铺垫文章主体层次摘要:示例摘要的写法 引言:系统分析总体设计总体功能总体功能如图1所示坦克大战总体流程图 详细设计游戏测试结论参考文献参考文献 配套资源 本系列校训 互相伤害互相卷,玩命学习要你管&#…

DoIP学习笔记系列:(二)VN5620 DoIP测试配置实践笔记

文章目录 1. 添加.cdd2. CAPL中调用接口发送DoIP请求3. “Ethernet Packet Builder”的妙用4. CANoe也可以做交互界面在进行测试前,先检查车载以太网硬件连线是否正确,需要注意连接两端的Master、Slave,100M、1000M等基本情况,在配置VN5620的时候就可以灵活处理了。成功安装…

FTP服务器的搭建和配置上传脚本

文章目录 前言一、配置本地用户可上传权限ftp服务器1、用户登录ftp 二、配置FTP上传脚本文件1.脚本代码如下 补充知识 前言 vsftpd(Very Secure FTP Daemon)是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、…

代码随想录算法训练营day11 | 20. 有效的括号,1047. 删除字符串中的所有相邻重复项

目录 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值 20. 有效的括号 难度:easy 类型:栈与队列 思路: 利用栈来做括号匹配; 代码: class Solution {public boolean isValid(String…

【深度学习】从现代C++中的开始:卷积

一、说明 在上一个故事中,我们介绍了机器学习的一些最相关的编码方面,例如 functional 规划、矢量化和线性代数规划。 本文,让我们通过使用 2D 卷积实现实际编码深度学习模型来开始我们的道路。让我们开始吧。 二、关于本系列 我们将学习如何…

LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据

如题。 效果图&#xff1a; //lazy属性为true&#xff0c;点开时才加载 引用代码&#xff1a; <link href"~/Content/layui-new/css/layui.css" rel"stylesheet" /><form id"form" class"layui-form" style"margin-to…

Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突

文章目录 解决spark模块依赖冲突2.2.6 执行编译命令2.2.7 编译成功 下一章 核心概念后记 解决spark模块依赖冲突 修改了Hive版本为3.1.2&#xff0c;其携带的jetty是0.9.3&#xff0c;hudi本身用的0.9.4&#xff0c;存在依赖冲突。 1&#xff09;修改hudi-spark-bundle的pom文…

QVariant

QVariant 标准类型构造函数将支持的类型的数据设置到QVariant对象中将QVariant对象转换为实际的数据类型 自定义类型 标准类型 构造函数 // 这类转换需要使用QVariant类的构造函数, 由于比较多, 大家可自行查阅Qt帮助文档, 在这里简单写几个 QVariant::QVariant(int val); QV…

文件命名简化!一键将电脑文件名从简体中文转换为西班牙语

您是否曾经被电脑上的简体中文文件名搞得头疼不已&#xff1f;通过一键将文件名从简体中文转换为西班牙语&#xff0c;让您的文件管理更加便捷和高效&#xff01;现在&#xff0c;我们向您推荐一款革命性的软件&#xff0c;为您带来无与伦比的文件命名体验。 首先第一步&#…

Ansible 自动化运维工具

Ansible简介 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。…

在亚马逊平台,如何有效举报违规行为?

众所周知&#xff0c;在每个行业都有一些违规现象&#xff0c;甚至这些违规现象还会给自己带来利益方面的损失&#xff0c;一旦触犯到自己的利益的话&#xff0c;那自己是需要想办法解决的&#xff0c;想办法规避。 就拿开亚马逊店铺来说&#xff0c;比较容易遇到的就是产品侵…

Windows用户如何安装新版本cpolar内网穿透

在科学技术高度发达的今天&#xff0c;我们身边充斥着各种电子产品&#xff0c;这些电子产品不仅为我们的工作带来极大的便利&#xff0c;也让生活变得丰富多彩。我们可以使用便携的电子设备&#xff0c;记录下生活中精彩和有趣的瞬间&#xff0c;并通过互联网方便的与大家分享…

Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试

前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DSP18B20驱动文件 头文件 /*******************************************************************************Copy…

Kafka入门到起飞系列 - 副本机制,什么是副本因子呢?

我们一直在讲一个主题会有多个分区&#xff0c;这多个分区可以分布在一台服务器上&#xff0c;也可以分布在多台服务器上&#xff0c;还可以增加分区&#xff08;Kafka目前只支持分区&#xff09;&#xff0c;这是Kafka提供的一种横向扩展的手段 比如我们创建了一个主题&#x…

Scala项目找不到或无法加载主类

目录 1&#xff0c;出错背景2&#xff0c;分析与解决 1&#xff0c;出错背景 Scala项目无法创建scale和Java文件。项目没有报错&#xff0c;但执行时项目总是找不到项目下的类&#xff0c;报错信息如下所示&#xff1a; 错误: 找不到或无法加载主类 com.my.memTestCheck但该类…