protocol buffers(protobuf)安装教程
本文按照mac讲解protobuf的安装,windows上比较好安装按照mac的基本流程就可以安装成功,mac上的安装有的时候比较容易出现问题
一、通过brew的方式安装(仅Mac)
需要mac中存在brew,输入命令:brew --version 查看是否存在brew,如不存在就进行安装,安装方法直接百度即可。
1.安装protobuf命令:brew install protobuf
安装指定版本的protobuf命令:brew install protobuf@3.7
2.查看是否安装成功命令:protoc --version
user@C02FP58GML7H bin % protoc --version
libprotoc 3.20.1
3.卸载protobuf命令:brew uninstall protobuf
4.brew安装安装路径
- 配置文件在:
/usr/local/etc下 - 安装文件在:
/usr/local/Cellar下 - 二进制可执行程序的软连接在:
/usr/local/bin下
注意:一般情况通过brew install安装应用最先是放在/usr/local/Cellar/目录下,有些应用会自动创建软链接放在/usr/bin或者/usr/sbin,同时也会将整个文件夹放在/usr/local,忘记的时候或者找不到的时候,可以使用brew list 软件名确定安装位置
二、源码编译方式安装(Mac、Linux)
1.从官方仓库地址下载
protobuf-all-21.6.tar.gz(当前最新版)
2.解压到目的目录下:tar -zxvf protobuf-all-21.6.tar.gz
3.进入到解压后的源码目录下:cd protobuf-all-21.6
4.检测安装环境是否满足条件,生成Makefile:./configure --prefix=/usr/local/protobuf
5.经典的编译安装步骤:make && make install
6.添加环境变量:(Linux需要按照linux的方式配置环境变量)
cd ~
export PROTOBUF=/usr/local/protobuf
export PATH=$PROTOBUF/bin:$PATH
vim .bash_profile
source .bash_profile
7.查看是否安装成功命令:protoc --version
三、压缩包解压方式安装(适合Mac、Windows、Linux)
1.从官方仓库地址下载
- 适用Windows 64位:protoc-21.6-win64.zip
- 适用Windows 32位:protoc-21.6-win32.zip
- 适用Mac 英特尔Intel 64位:protoc-21.6-osx-x86_64.zip
- 适用Mac ARM 64位:protoc-21.6-osx-aarch_64.zip
- 适用Linux 64位:protoc-21.6-linux-x86_64.zip
2.解压到目的目录下
目录结构如下:
- bin目录下的protoc是可执行文件
- include目录下的是gogle定义的.protoc文件,我们使用的就是
import "google/protobuf/timestamp.proto"
user@C02FP58GML7H protoc-3.20.1-osx-x86_64 % tree
.
├── bin
│ └── protoc
├── include
│ └── google
│ └── protobuf
│ ├── any.proto
│ ├── api.proto
│ ├── compiler
│ │ └── plugin.proto
│ ├── descriptor.proto
│ ├── duration.proto
│ ├── empty.proto
│ ├── field_mask.proto
│ ├── source_context.proto
│ ├── struct.proto
│ ├── timestamp.proto
│ ├── type.proto
│ └── wrappers.proto
└── readme.txt
~/.bash_profile (一般在这个文件中添加用户级环境变量)
3.添加环境变量
Mac配置环境变量的地方:
- /etc/profile(建议不修改这个文件):全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
- /etc/bashrc(一般在这个文件中添加系统级环境变量):全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。
- ~/.bash_profile(一般在这个文件中添加用户级环境变量):每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
- 注意:但有时在.bash_profile文件中的环境变量会无效
当mac中存在zsh,修改环境变量就要在~/.zshrc中修改,本教程就是在此文件中加入如下配置,=后面是文件加压后的路径,自行修改:
alias protoc=/Users/user/Desktop/workspace2/protoc-3.20.1-osx-x86_64/bin/protoc
刷新配置使修改立即生效,需要执行:
source ~/.zshrc
4.Linux中同理适用对应的修改添加环境变量的方法,然后刷新配置,修改方法百度即可
5.Windows中只需要在图形化的配置中加入环境变量即可,具体实现直接百度即可
protocol buffers(protobuf)安装教程的更多相关文章
- Protocol Buffers(Protobuf)开发者指南---概览
Protocol Buffers(Protobuf)开发者指南---概览 欢迎来到protocol buffers的开发者指南文档,protocol buffers是一个与编程语言无关‘.系统平台无关 ...
- Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南
Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南 约定:为方便书写,ProtocolBuffers在下文中将已Protobuf代替. 本指南将向您描述如何使用 ...
- google protobuf安装与使用
google protobuf是一个灵活的.高效的用于序列化数据的协议.相比较XML和JSON格式,protobuf更小.更快.更便捷.google protobuf是跨语言的,并且自带了一个编译器( ...
- Google Protocol Buffers简介
什么是 protocol buffers ? Protocol buffers 是一种灵活.高效的序列化结构数据的自动机制--想想XML,但是它更小,更快,更简单.你只需要把你需要怎样结构化你的数据定 ...
- Go 支持Protocol Buffers的配置
安装 protoc (The protocol compiler)是由C++写的,支持的 C++.Java.Python.Objective-C.C#.JavaNano.JavaScript.Ruby ...
- Protocol Buffers学习教程
最近看公司代码的过程中,看到了很多proto后缀的文件,这是个啥玩意?问了大佬,原来这是Protocol Buffers! 这玩意是干啥的?查完资料才知道,又是谷歌大佬推的开源组件,这玩意完全可以取代 ...
- Protocol Buffers教程
今天想比较下pb和fastjson两个序列化后的大小.再看了一下pb序列化 pb官网:https://developers.google.com/protocol-buffers/ pb是啥 What ...
- protobuf Protocol Buffers 简介 案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Ubuntu 14.04 下 安装Protocol Buffers
参考: Protocol Buffers - Google's data interchange format Ubuntu 14.04 下 安装Protocol Buffers 环境 Ubuntu ...
- Centos 6.8 安装 Protocol Buffers , v3.2.0有 BUG ,安装 3.1.0
Centos 6.8 安装 Protocol Buffers , v3.2.0有 BUG ,安装 3.1.0 切换到用户目录 cd ~ 安装 python2.7,须加入zlib wget http ...
随机推荐
- MySQL底层概述—4.InnoDB数据文件
大纲 1.表空间文件结构 (1)表空间Tablesapce (2)段Segment (3)区Extend (4)页Page (5)行Row 2.Page结构 (1)页结构各部分说明 (2)页结构整体划 ...
- Java日志手机号脱敏工具类
背景 在开发过程中,很容易将用户敏感信息,例如手机号码.身份证等,打印在日志平台.为了保护用户数据,又不影响日志的打印,需要将日志中的敏感信息进行脱敏. 效果 没看明白,强烈建议 pull项目,执行一 ...
- 终于解决了.net在线客服系统总是被360误报的问题(对软件进行数字签名)
升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放.开源.共享.努力打造 .net 社区的一款优秀开源产品. 背景 我在业余时间开发的这个客服系统, ...
- GObject学习笔记(二)类型创建与注册
前言 本文可在https://paw5zx.github.io/GObject-tutorial-beginner-02/中阅读,体验更加 在上一节中我们介绍了GObject类型的类和实例变量的创建和 ...
- pg_index
在pg11之后,引入了indnkeyatts字段,根据官方文档解释其作用:The number of key columns in the index, not counting any includ ...
- 还在为入门鸿蒙效率慢而困惑?不妨试试开发学习神器 - AI辅助编程
鸿蒙应用开发从入门到入行 鸿蒙开发神器 - AI辅助编程 CodeGenie介绍 目前有好几款AI插件可以装到DevEco上,出名的例如Copilot.通义灵码等.但是经过猫林老师截至到目前的测试.都 ...
- HTMLreport报告(五) -- 测试报告中添加截图
一.需求痛点 HTMLreport报告没有截图 二.实现办法 1.思路:使用viewer.js图片查看器,用cdn:后端部分用 unittest.test_result中的内容 2.实现步骤 1)vi ...
- 【转载】Spring Cloud Gateway限流详解
https://www.imooc.com/article/290828/ Spring Cloud Gateway限流详解 2019.08.11 12:56 7257浏览 Spring Clou ...
- Qt音视频开发38-ffmpeg视频暂停录制的设计
一.前言 基本上各种播放器提供的录制视频接口,都是只有开始录制和结束录制两个,当然一般用的最多的也是这两个接口,但是实际使用过程中,还有一种可能需要中途暂停录制,暂停以后再次继续录制,将中间部分视频不 ...
- Qt音视频开发14-音视频文件保存基类的设计
一.前言 视频综合应用示例,包括了多种内核,在保存文件这个功能上,需要一个通用的文件保存基类AbstractSaveThread,这个基类定义了是否打印线程消息标志位.直接写入还是排队写入标志位.文件 ...