windows下安装protobuf与protoc

windows下安装protobuf与protoc

  • protobuf与protoc的简介
    • 首先我们先介绍protobuf安装方式
    • 然后安装proto-gen-go插件(必装)
    • 然后我们来通过proto文件生成对应go语言文件

protobuf与protoc的简介

  • protobuf可以说是一种单独的语言,他是Google开发的一款数据压缩协议,我们可以使用他压缩的数据在各个服务之间传输,它拥有比jsongengjia高效的传输效率,而且数据的压缩比也更高(可以自己写一个简单的服务测试一下),protoc就是用来基于我们的proto文件生成对应语言的代码的一个工具。

首先我们先介绍protobuf安装方式

  • 安装protobuf一般没有什么问题,我们可以直接去到github的网站里面,搜索protobuf,然后选择第一个点击(一般是第一个star数目最多的),然后选择右边的releases点击,然后下拉到我们的Asserts目录中,在这个目录中选择最下面的三个protoc的zip文件下载(不包括最下面的两个source文件),下载你系统的版本即可。
  • 下载完成之后,我们把他解压到你想要解压的目录下,然后进入protoc的文件夹里面的bin目录,把这个目录添加到环境变量中去,当然你也可以把解压好的文件放入你已经添加环境变量的路径中去(比如你的开发语言的bin目录环境变量下)这都是随便你自己,只要你在命令行中输入protoc,有反应那就说明你装成功了。
  • 这里附上连接
  • 注意这一切的前提是你已经配置好了国内镜像,你可以在命令行输入go env 查看对应goproxy看是否是现实GOPROXY=https://goproxy.io,direct(当然镜像不止一个cn结尾也可以)这个,如果不是建议,先设置好镜像再来。设置镜像就自行百度,网上一大堆。

然后安装proto-gen-go插件(必装)

  • 有些视频是老方式装这个插件,这时候可能会显安装不了。我们通过第一个命令安装的人可能会出现问题。他提示项目已经停止使用了,然后让我们去google.org下载,也就是在命令行运行我们第二个命令,但实际很遗憾google被墙了,基本就会提示连接无响应或者超时(因为原github项目已经被google接管了,所以我们只能使用谷歌的下载连接,但是被墙)。所以基本现在两个命令都有可能用不了。这里我们就推荐自己去github把原项目下载下来,然后再生成文件,自己操作,附上原文连接,我就不再过多介绍。
go get -u github.com/golang/protobuf/protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go

然后我们来通过proto文件生成对应go语言文件

  • 使用我们安装好的proto-gen-go插件,当我们在项目中创建并且写好了相应的proto文件(本文我们以helloworld.proto文件为例),然后去到命令行,先通过cd proto文件路径,进入到该proto文件所在的文件夹中,然后我们运行相应的命令就可以在对应文件夹生成对应proto文件的go语言文件了
protoc --go_out=. message.proto//一般运行这一行就可以了
protoc --go-grpc_out=. message.proto//这一行命令也行,不过他是包含grpc插件生成的代码
 . 的话就是表示在当前目录下生成目标了文件
  • 如果你显示路径有问题的话,就在proto文件中加入一行代码,这样就没问题了。
option go_package = "/proto;proto";//双引号中前面的/proto是生成文件放在那个包下,分号后面是包名
  • 如果还是很难理解这两个是在干什么的话附上连接

你可能感兴趣的:(Go语言,golang)