本文按照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.从官方仓库地址下载

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配置环境变量的地方:

  1. /etc/profile(建议不修改这个文件):全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
  2. /etc/bashrc(一般在这个文件中添加系统级环境变量):全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。
  3. ~/.bash_profile(一般在这个文件中添加用户级环境变量):每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
  4. 注意:但有时在.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)安装教程的更多相关文章

  1. Protocol Buffers(Protobuf)开发者指南---概览

    Protocol Buffers(Protobuf)开发者指南---概览 欢迎来到protocol buffers的开发者指南文档,protocol buffers是一个与编程语言无关‘.系统平台无关 ...

  2. Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南

    Protocol Buffers(Protobuf) 官方文档--Protobuf语言指南 约定:为方便书写,ProtocolBuffers在下文中将已Protobuf代替. 本指南将向您描述如何使用 ...

  3. google protobuf安装与使用

    google protobuf是一个灵活的.高效的用于序列化数据的协议.相比较XML和JSON格式,protobuf更小.更快.更便捷.google protobuf是跨语言的,并且自带了一个编译器( ...

  4. Google Protocol Buffers简介

    什么是 protocol buffers ? Protocol buffers 是一种灵活.高效的序列化结构数据的自动机制--想想XML,但是它更小,更快,更简单.你只需要把你需要怎样结构化你的数据定 ...

  5. Go 支持Protocol Buffers的配置

    安装 protoc (The protocol compiler)是由C++写的,支持的 C++.Java.Python.Objective-C.C#.JavaNano.JavaScript.Ruby ...

  6. Protocol Buffers学习教程

    最近看公司代码的过程中,看到了很多proto后缀的文件,这是个啥玩意?问了大佬,原来这是Protocol Buffers! 这玩意是干啥的?查完资料才知道,又是谷歌大佬推的开源组件,这玩意完全可以取代 ...

  7. Protocol Buffers教程

    今天想比较下pb和fastjson两个序列化后的大小.再看了一下pb序列化 pb官网:https://developers.google.com/protocol-buffers/ pb是啥 What ...

  8. protobuf Protocol Buffers 简介 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. Ubuntu 14.04 下 安装Protocol Buffers

    参考: Protocol Buffers - Google's data interchange format Ubuntu 14.04 下 安装Protocol Buffers 环境 Ubuntu ...

  10. 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 ...

随机推荐

  1. 在table中,tbody没有充满整个table

    解决方法就是给table加上 display:table;就好了

  2. MySQL之使用pt-online-schema-change在线修改大表结构

    原因: 最近公司上一个功能, 需要为其中某个表中新增字段,但是考虑到线上数据已经达到300w+的级别,同时使用的mysql的版本是5.7而非8.0,这会导致新增字段的时候,对全表进行加锁,直到添加完毕 ...

  3. MongoDB之用户管理

    注意点: 验证库: 建立用户时use到的库及用户的验证库,在使用用户时,要加上验证库才能登陆. 对于管理员用户,必须在admin下创建. 1. 建用户时,use到的库,就是此用户的验证库 2. 登录时 ...

  4. Net中手写 事件总线 发布订阅消息

    Net 手写 事件总线 发布订阅消息 前言 今晚打老虎 事件总线是对发布-订阅模式的一种实现.它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的.(项目的 ...

  5. shp文件及附属

    主文件 .shp - 用于存储要素几何的主文件,之前分享过该文件的结构详解:必需文件. .shx - 用于存储要素几何索引的索引文件:必需文件. .dbf - 用于存储要素属性信息的 dBASE 表, ...

  6. 03C++顺序结构(2)

    一.变量.赋值语句与表达式 1.天安门广场在北京市中心,它南北长880米,东西宽500米,试编一程序,计算天安门广场面积是多少平方米. 点击查看代码 1 //试编程,计算天安门广场的面积是多少平方米 ...

  7. Qt编写可视化大屏电子看板系统22-平滑曲线图

    一.前言 平滑曲线是所有涉及到曲线图的项目中,绕不开的一个话题,尽管很多人爱看折线图,但是很多时候来个平滑曲线图,会更加赏心悦目,这就好比现在的手机app移动客户端上,从最初的四方四正到现在的平滑圆角 ...

  8. vs 禁用c++编译警告提示的两种方式

    1. 禁用单个cpp文件编译警告 #pragma warning(disable:警告号) 如:当前提示C4305警告; 加入禁用单个cpp文件编译警告; 结果:编译警告消失. 2. 全局禁用指定警告 ...

  9. 即时通讯框架MobileIMSDK的H5端开发快速入门

    ► 相关链接: ① MobileIMSDK-H5端的详细介绍 ② MobileIMSDK-H5端的开发手册new(* 精编PDF版) 一.技术准备 您是否已对Web端即时通讯技术有所了解? 1)新手入 ...

  10. 跟着源码学IM(十一):一套基于Netty的分布式高可用IM详细设计与实现(有源码)

    本文由will分享,个人博客zhangyaoo.github.io,原题"基于Netty的IM系统设计与实现",有修订和重新排版. 1.引言 本文将要分享的是如何从零实现一套基于N ...