Windows 和 Linux 环境下 ProtoBuf 的安装

news/2025/2/12 20:47:56/

文章目录

  • 一、ProtoBuf 在 Windows 环境中的安装
  • 二、ProtoBuf 在 Linux 环境中的安装


ProtoBuf在GitHub上的下载地址

一、ProtoBuf 在 Windows 环境中的安装

首先选择自己要下载的版本,我选择的是v21.11:

点进去在最下面选择Windows的版本,下载即可:

将下载后的压缩包解压到合适的位置,此处我选择的是D盘:

打开bin目录:

会发现里面有一个protoc.exe可执行文件,复制其路径,添加到系统的环境变量中即可:


对的,此时ProtoBuf 在 Windows 环境中的安装就完成了,就是这么简单,最后打开终端,输入protoc --version,如果显示版本信息就说明安装成功了。

二、ProtoBuf 在 Linux 环境中的安装

由于我的主机是一台Contos 7版本的云服务器,因此我就在此版本的Linux环境中安装 ProtoBuf

首先下载ProtoBuf,在下载ProBuf前一定要安装依赖库:autoconf、automake、libtool、curl、make、g++、unzip

安装依赖库的命令:

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

然后在ProtoBuf中选择要下载的版本,复制其下载链接,我选择的是支持所有编程语言的版本:https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip

使用wget命令进行下载:

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

下载完成后使用命令 unzip 进行解压:

 unzip protobuf-all-21.11.zip 

可以看到有以下内容:

**安装 ProtoBuf **

进入解压好的文件,执行以下命令:

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

这里我选择的是修改安装⽬录,统⼀安装在/usr/local/protobuf下,执行完后,会发现多了一个Makefile文件:

然后执行:

make // 执⾏15分钟左右
make check // 执⾏15分钟左右
sudo make install

执行make check 后,出现以下内容就可以执行sudo make install

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

最后重新执行/etc/profile文件

source /etc/profile 

检查是否安装成功
输入 protoc --version 查看版本信息,如果有显示版本信息则表明安装成功:


http://www.ppmy.cn/news/74773.html

相关文章

一文带你了解MySQL之连接原理

前言 本文章收录在MySQL性能优化原理实战专栏,点击此处查看更多优质内容。 搞数据库一个避不开的概念就是Join,翻译成中⽂就是连接。相信很多小伙伴初学连接的时候有些一脸懵,理解了连接的语义之后又可能不明白各个表中的记录到底是怎么连起…

代码随想录算法训练营 Day 49 | 121.买卖股票的最佳时机,122.买卖股票的最佳时机 II

121.买卖股票的最佳时机 讲解链接:代码随想录-121.买卖股票的最佳时机 确定 dp 数组以及下标的含义: dp[i][0] 表示第 i 天持有股票所得最多现金dp[i][1] 表示第 i 天不持有股票所得最多现金 确定递推公式: 如果第 i 天持有股票即 dp[i][0]&…

六、数据仓库详细介绍(ETL)工具篇下

0x00 前言 上篇,我们介绍了五种传统 ETL 工具和八种数据同步集成工具。 数据仓库详细介绍(五.ETL)工具篇上 本篇,我们接着介绍两种新型 ETL 工具、大数据发展不同阶段产生的六种主要计算引擎、五种流程控制组件。 最后我们简单…

手写Docker之认识NameSpace、CGroups、Union file system

关于NameSpace Linux NameSpace主要是kernel中用于隔离系统资源的功能,而docker就是基于NameSpace去隔离系统资源达到容器化的效果 以下案例均以该代码进行举例: package mainimport ("fmt""os""os/exec""syscall&…

1057 Stack (PAT甲级)

用了《算法笔记》中分块的思路。 #include <iostream> #include <string> #include <vector> #include <cstdio> #include <cmath> const int MAXN 100001;int main(){int N, sz, nbrOfBlock, t, cnt, j;int count[MAXN] {0};sz sqrt(MAXN *…

OKR是什么意思啊

一、OKR是什么意思&#xff1f; OKR是"Objective and Key Results"的缩写&#xff0c;即目标和关键结果。它是一种目标管理框架&#xff0c;旨在帮助组织和团队设定明确的目标&#xff0c;并通过关键结果来衡量和追踪目标的实现情况。 为了让大家快速了解什么是OKR…

ResourceManager启动报错:Queue configuration missing child queue names for root【已解决】

Queue configuration missing child queue names for root 现象报错分析ResourceManager输出日志解决 现象 start-all.sh后缺少RM的进程 报错 查看启动日志输出文件 2023-05-23 19:28:19,863 INFO [main] resourcemanager.RMNMInfo (RMNMInfo.java:<init>(63)) - Re…

UNIX网络编程卷一 学习笔记 第十五章 Unix域协议

本书中&#xff0c;作者说Unix域数据报套接字是不可靠的&#xff0c;这一说法已经过时&#xff0c;当前大多实现中&#xff0c;Unix域套接字都是可靠的&#xff0c;不论是数据报套接字还是字节流套接字。 Unix域协议不是一个实际的协议族&#xff0c;而是单个主机上执行客户/服…