简言

1. protobuf(protocol buffer)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。 protoc是Protobuf编译出来的可执行程序

2. protoc-gen-go是go语言版本的 protobuf 编译器插件,也就是说想把.proto的协议文件编译成.go文件,需要这个插件才行

步骤1

git clone https://github.com/protocolbuffers/protobuf.git

步骤2
cd protobuf

步骤3
git submodule update --init --recursive

步骤4,此步骤若报错 autoreconf: not found,则执行命令 sudo apt-get install autoconf automake libtool 再执行 ./autogen.sh 即可
./autogen.sh

步骤5
./configure

步骤6
make

步骤7
make check

步骤8
sudo make install

步骤9
sudo ldconfig

上面步骤都运行成功了,这时通过下面的命令查看当前版本信息:

protoc --version
以我的电脑为例,会输出:

libprotoc 3.11.2

下面开始安装 protoc-gen-go

步骤10(这样是安装最新的protoc-gen-go)

若想安装指定版本的protoc-gen-go,请参考这篇博客:https://blog.csdn.net/yzf279533105/article/details/104416459

若有网,则直接运行命令 go get -u github.com/golang/protobuf/protoc-gen-go ,完成后便可在$GOPATH/bin目录下发现这个工具

若无网,则首先在github.com/golang/protobuf上下载protoc-gen-go和proto,(最好将其放在$GOPATH/src目录下)然后进入protoc-gen-go目录,执行go build、go install即可在$GOPATH/bin目录下发现这个工具。前提是必须首先将$GOPATH/bin路径添加到环境变量$PATH中

懒人做法:上述可能会出现找不到某些依赖文件,直接从一台能访问网络且安装完成的服务器上打包github.com,然后sz、rz到无网络服务器,解压到$GOPATH/src目录下,go build、go install即可

PS:若要使用 grpc 以及 grpc-gateway 还要执行下面的操作

go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger

ubuntu16安装最新protocbuf 和 protoc-gen-go相关推荐

  1. Ubuntu16安装CUDA9.0+Anaconda+Tensorflow1.8GPU(2018.08.20最新)

    最近装了好多次环境了,踩了N多坑,记录一下,尽量安装的先后顺序也不要换,因为一般情况下,驱动安装不好的话,重装系统作为解决方法的概率比较大,所以尽量先装驱动比较好. 最好是刚刚重装好的崭新的ubunt ...

  2. 适合win7的python版本_windows下多个python版本共存,如何在Windows7系统上安装最新的64位Python3.6.2...

    windows下多个python版本共存,如何在Windows7系统上安装最新的64位Python3.6.2 1.官网下载python3.6.2 https://www.python.org/ftp/ ...

  3. Beaglebone Black教程BeagleBone Black安装最新系统映像

    Beaglebone Black教程BeagleBone Black安装最新系统映像 BeagleBone Black安装最新系统映像 Beaglebone Black虽然已经预装了Debian操作系 ...

  4. 在 Ubuntu 上安装最新版本的 Erlang方法介绍

    Erlang 是一种用于构建大规模可扩展实时系统的函数式编程语言.Erlang 最初是由 爱立信 创建的专有软件,后来被开源. Erlang 在 Ubuntu 的 Universe 仓库 中可用.启用 ...

  5. 手把手教你如何在 Linux 上源码安装最新版本 R

    如果你使用的 Linux 系统 GCC 版本太低,又没有 root 权限(即使有 root 权限又担心升级 GCC 带来的风险):同时你又不想额外多安装多一个 Anaconda 或者 Minicond ...

  6. mysql 5.7.16默认密码_(转)Ubuntu16安装mysql5.7未提示输入密码,安装后修改mysql默认密码...

    Ubuntu16安装mysql5.7未提示输入密码,安装后修改mysql密码默认密码 mysql默认密码为空 但是使用mysql -uroot -p 命令连接mysql时,报错 ERROR 1045 ...

  7. Ubuntu中安装最新Docker社区版

    了解Docker请看博客<Docker初体验> 搭建Docker环境看起来是很简单的一件事,笔者也看到网上各种形形色色的安装教程,但是似乎大多都不全面,不完善.当我们的Ubuntu还没有安 ...

  8. 安装最新Spree出现error:spree_core requires will_paginate (= 3.0.pre2, runtime)

    在安装最新的Spree的时候出现以下错误 root@xxxx:/home/xxx/spree# gem install spree ERROR:  Error installing spree: sp ...

  9. 在ubuntu上安装最新稳定版本的node及npm

    背景 通过ubuntu官方apt安装工具安装的node是最新LTS版本的,而本人是个有点强迫症的人,喜欢追求新的东西,也就是想方设法想要去安装最新版本的node,所以本文也就产生了,附上ubuntu安 ...

最新文章

  1. LeetCode每日一题:回文链表(No.234)
  2. PHP100精华:PHP打印函数集合
  3. springboot启动过程_不要搞笑哈,你用了5年的SpringBoot框架,竟然不了解它的启动过程?...
  4. 万能的Seq2Seq:基于Seq2Seq的阅读理解问答
  5. 计算机网络专业的基础知识,计算机网络专业基础知识.doc
  6. 启动spark shell
  7. NET 对象生命周期
  8. 数据库选型入门必读:如何在眼花缭乱的产品中挑出最适合业务的?
  9. android UI开源库
  10. linux 目录与分区与文件,LINUX中的分区与文件系统
  11. gulp教程之gulp-minify-css
  12. easyui模板中的disabled的使用
  13. 专利申请--权利要求书vs说明书
  14. 阿里云服务器最新价格表(标准收费报价表)
  15. html的介绍及常用标签,吊打面试官系列!
  16. oracle同一个库不同用户,oracle同一个库上面,不同用户相互赋予权限
  17. 《魔法黎明(Dawn of Magic)》反复刷BOSS(三)
  18. opencv与openmv?
  19. neutron服务宕机导致nova无法创建云主机
  20. 合天网安 CTF之第六周-套娃一样的上传

热门文章

  1. {在头值中找到无效的字符。} 发email的时候 遇到这个问题 老师解决
  2. javascript中alert函数的替代方案,一个自定义的对话框的方法(引用)
  3. 2020ICPC(小米邀请赛2) - 2020(二分+贪心)
  4. CodeForces - 1359C Mixing Water(三分)
  5. SPOJ - NSUBSTR Substrings(后缀自动机)
  6. c语言增强图像直方图均衡化,图像直方图均衡化增强opencv与C语言版
  7. react如何获取option的下标和值_react中option标签如何确定selected?
  8. vs运行时 文本可视化工具 无法点开_webpack 优化:2 款工具帮你找到构建速度“变慢”的原因...
  9. Linux闲时自动抢占GPU脚本
  10. Java笔记——Java代码块的执行顺序