当前位置: 首页 > news >正文

如何安装ProtoBuf环境

1 🍑下载 ProtoBuf🍑

下载 ProtoBuf 前⼀定要安装依赖库: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

ProtoBuf 下载地址大家可以自行去官网下载:ProtoBuf

可以不⽤下载最新版本,我这里以 v21.11为例,下载命令:

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

下载完成后,解压zip包:

unzip protobuf-all-21.11.zip

解压完成后,会⽣成 protobuf-21.11 ⽂件,进⼊⽂件:
在这里插入图片描述


2 🍑安装 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完成后 ,就可以执⾏ sudo make install

到此,需要你回忆⼀下在执⾏configure时,如果当时选择了第⼀种执⾏⽅式,也就是./configure ,那么到这就可以正常使⽤protobuf了。
如果选择了第⼆种执⾏⽅式,即修改了安装⽬录,那么还需要在/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

3 🍑检查是否安装成功🍑

输⼊ protoc --version 查看版本,有显⽰说明安装成功:
在这里插入图片描述

相关文章:

如何安装ProtoBuf环境

1 🍑下载 ProtoBuf🍑 下载 ProtoBuf 前⼀定要安装依赖库:autoconf automake libtool curl make g unzip 如未安装,安装命令如下: Ubuntu ⽤⼾选择: sudo apt-get install autoconf automake libtool cur…...

C语言 vs Rust应该学习哪个?

C语言 vs Rust应该学习哪个? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&am…...

IT廉连看——Uniapp——配置文件pages

IT廉连看——Uniapp——配置文件pages [IT廉连看] 本堂课主要为大家介绍pages.json这个配置文件 一、打开官网查看pages.json可以配置哪些属性。 下面边写边讲解 新建一个home页面理解一下这句话。 以下一些页面的通用配置 通用设置里我们可以对导航栏和状态栏进行一些设…...

服务器上部署WEb服务方法

部署Web服务在服务器上是一个比较复杂的过程。这不仅仅涉及到配置环境、选择软件和设置端口,更有众多其它因素需要考虑。以下是在服务器上部署WEb服务的步骤: 1. 选择服务器:根据项目规模和预期访问量,选择合适的服务器类型和配置…...

设计模式:模版模式

模板模式(Template Pattern)是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤的具体实现延迟到子类中。模板模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 在模板模式中,将算法的…...

pikachu之特殊注入之搜索型注入、xx型注入、insert/update注入、delete注入、宽字节注入

一步一脚印!!! 补充:此处为什么不写http请求头注入,因为该注入类型只是换了注入点,语句其他根本没有什么变化 1.搜索型 先尝试输入常用payload: 1 or 11 #。 已经有回显 我们在查看提示 我们…...

docker构建hyperf环境

一,构建hyperf 镜像 官网git https://github.com/hyperf/hyperf-docker 使用dockerfile构建镜像 根据需要这里我使用8.1 swoole版本的镜像 在/home/hyperfdocker 目录中新建一个Dockerfile文件,将这个git上的Dockerfile内容复制粘贴进去 docker build…...

WPF常用mvvm开源框架介绍 vue的mvvm设计模式鼻祖

WPF(Windows Presentation Foundation)是一个用于构建桌面应用程序的.NET框架,它支持MVVM(Model-View-ViewModel)架构模式来分离UI逻辑和业务逻辑。以下是一些常用的WPF MVVM开源框架: Prism Prism是由微软…...

HTML <script>元素的10个属性

将javascrip插入HTML的主要方法是使用<script>元素&#xff0c;这个元素是网景公司&#xff08;Netscape&#xff09;创造出来的&#xff0c;script 元素所属类型因其用法而异。位于 head 元素中的 script 元素属于元数据元素&#xff0c;位于其他元素&#xff08;如 bod…...

NX二次开发:ListingWindow窗口的应用

一、概述 在NX二次开发的学习中&#xff0c;浏览博客时发现看到[社恐猫]和[王牌飞行员_里海]这两篇博客中写道有关信息窗口内容的打印和将窗口内容保存为txt,个人人为在二次开发项目很有必要&#xff0c;因此做以下记录。 ListingWindow信息窗口发送信息四种位置类型 设置Listi…...

设计模式-结构型模式-外观模式

外观模式&#xff08;Facade&#xff09;&#xff0c;为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。[DP] 首先&#xff0c;定义子系统的各个组件接口和具体实现类&#xff1a; // 子系统组件接…...

C++学习第四天(类与对象下)

1、构造函数的其他知识 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能将其称为对对象中成员变量的初始化&#xff0c;构造函…...

【AI Agent系列】【MetaGPT多智能体学习】0. 环境准备 - 升级MetaGPT 0.7.2版本及遇到的坑

之前跟着《MetaGPT智能体开发入门课程》学了一些MetaGPT的知识和实践&#xff0c;主要关注在MetaGPT入门和单智能体部分&#xff08;系列文章附在文末&#xff0c;感兴趣的可以看下&#xff09;。现在新的教程来了&#xff0c;新教程主要关注多智能体部分。 本系列文章跟随《M…...

python自动化管理和zabbix监控网络设备(无线AC控制瘦ap配置部分)

目录 前言 拓扑 一、AC-SW1 二、Core-sw1 三、Core-sw2 四、汇聚层 五、AC1 六、SW1-6 七、DMZ区域 前言 具体原理和操作可以访问我的主页视频 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 拓扑 一、AC-SW1 sys sysname AC-SW1 vlan batch 100 200 210 220 2…...

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境&#xff08;gethub上面的&#xff09; alert(1) 二、正式开始闯关 0x01 源码&#xff1a; 思路&#xff1a;闭…...

etcd java 客户端jetcd库踩坑日志

问题 Q&#xff1a; EtcdException: Unable to resolve endpoints [http://0.0.0.0:2379/] A&#xff1a; 经过测试&#xff0c;endpoints最后的斜杠不能写&#xff0c;完整的endpoints是http://0.0.0.0:2379 Q&#xff1a; java.lang.NoSuchMethodError: io.netty.buffer.Po…...

<网络安全>《61 微课堂<第1课 南北向流量是什么?>》

1 形象化解释 在网络安全中&#xff0c;经常听到南北向流量这个词。那究竟是什么意思呢&#xff1f; 这里的南北&#xff0c;就是地图上的东西南北&#xff0c;是方向。我们在画网络架构图时&#xff0c;往往是由上到下依次是web层、应用层、数据层&#xff0c;流量从web层到…...

Day12-【Java SE进阶】JDK8新特性:Lambda表达式、方法引用、常见算法、正则表达式、异常

一、JDK8新特性 1.Lambda表达式 Lambda表达式是JDK 8开始新增的一种语法形式;作用:用于简化名内部类的代码写法。 注意:Lambda表达式并不是说能简化全部匿名内部类的写法&#xff0c;只能简化函数式接口的匿名内部类。 有且仅有一个抽象方法的接口。注意:将来我们见到的大部…...

go mod中如何解决 xxx/yyy/lib@v1.1.0: unrecognized import path

需要检查的几个地方 这个错误通常出现在 Go 模块系统无法找到指定版本的模块时。有几种可能的原因和解决方法&#xff1a; 模块未被发布或标记&#xff1a; 确保 xxx/yyy/lib 模块的版本 v1.1.0 已经被正确地发布或标记。你可以在对应的 GitLab 仓库中查看是否存在 v1.1.0 标签…...

比较Python和Rust的内存管理机制

大家好&#xff0c;内存管理是编程语言的基础&#xff0c;它确保着资源被有效利用&#xff0c;不同的编程语言采用不同的策略来管理内存。有些语言需要程序员手动管理内存&#xff0c;有些语言则自动化了内存管理过程。Python和Rust都采用了垃圾收集&#xff08;Garbage Collec…...

AIAgent多租户隔离失效事件复盘(某金融客户千万级SLA违约始末):资源编排、上下文污染、元数据泄漏三重防御体系

第一章&#xff1a;AIAgent架构分布式部署方案 2026奇点智能技术大会(https://ml-summit.org) AI Agent系统在生产环境中需应对高并发推理、多模态任务编排与动态资源伸缩等挑战&#xff0c;分布式部署成为保障可用性与弹性的核心实践。典型架构采用“控制面数据面执行面”三层…...

LeagueAkari架构解析:基于LCU API的英雄联盟智能辅助工具技术实现

LeagueAkari架构解析&#xff1a;基于LCU API的英雄联盟智能辅助工具技术实现 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari是一…...

嵌入式处理器的接口资源架构

2.1.2 嵌入式处理器的接口资源架构 嵌入式处理器的接口资源并非独立存在,而是通过分层架构组织在一起。理解这一架构,有助于开发者在进行接口开发时准确把握资源配置和交互方式,从而高效地进行驱动开发和问题排查。 一、架构分层模型 现代嵌入式处理器(特别是以RK3588为…...

VMware Unlocker终极指南:3分钟在Windows/Linux上运行macOS虚拟机

VMware Unlocker终极指南&#xff1a;3分钟在Windows/Linux上运行macOS虚拟机 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker VMware Unlocker是一款革命性的开源工具&#xff0c;它能突破VMware对macO…...

如何按优先级控制 Flex 容器中子元素的截断顺序

本文详解如何通过 flex-shrink 属性实现多列 Flex 布局中子元素的渐进式、有优先级的截断行为——即让指定元素&#xff08;如按钮&#xff09;先收缩至最小宽度&#xff0c;之后其他元素才开始截断&#xff0c;避免所有项同时被裁剪。 本文详解如何通过 flex-shrink 属性…...

Windows 11任务栏歌词插件:让音乐与工作无缝融合

Windows 11任务栏歌词插件&#xff1a;让音乐与工作无缝融合 【免费下载链接】Taskbar-Lyrics BetterNCM插件&#xff0c;在任务栏上嵌入歌词&#xff0c;目前仅建议Windows 11 项目地址: https://gitcode.com/gh_mirrors/ta/Taskbar-Lyrics 还在为听歌时频繁切换窗口查…...

3分钟掌握B站视频精髓:BiliTools AI总结功能终极指南

3分钟掌握B站视频精髓&#xff1a;BiliTools AI总结功能终极指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 在…...

BallonTranslator:3分钟完成漫画翻译的终极AI工具,完全免费开源!

BallonTranslator&#xff1a;3分钟完成漫画翻译的终极AI工具&#xff0c;完全免费开源&#xff01; 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by…...

VSCode终端执行npm命令失败的排查与修复(Powershell方案)

1. 问题场景还原&#xff1a;为什么VSCode终端跑不动npm&#xff1f; 最近在项目里碰到个怪事&#xff1a;用系统自带的CMD窗口跑npm install一切正常&#xff0c;但切回VSCode内置终端就报"npm不是可识别的命令"。这种割裂感就像手机连WiFi能上网但电脑连同一个WiFi…...

5个步骤让普通鼠标在macOS上获得超越苹果触控板的体验

5个步骤让普通鼠标在macOS上获得超越苹果触控板的体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否曾经为第三方鼠标在macOS上的糟糕体…...