前言
protoc是一款用C++编写的工具,其可以将proto文件翻译为指定语言的代码。在go-zero的微服务中,我们采用grpc进行服务间的通信,而grpc的编写就需要用到protoc和翻译成go语言rpc stub代码的插件protoc-gen-go。
本文演示环境
- mac OS
-
protoc安装
进入protobuf release 页面,选择适合自己操作系统的压缩包文件
解压protoc-3.14.0-osx-x86_64.zip并进入protoc-3.14.0-osx-x86_64
$ cd protoc-3.14.0-osx-x86_64/bin
将启动的protoc二进制文件移动到被添加到环境变量的任意path下,如$GOPATH/bin,这里不建议直接将其和系统的一下path放在一起。
$ mv protoc $GOPATH/bin
Tip $GOPATH为你本机的实际文件夹地址
验证安装结果
$ protoc --version
$ protoc --version
protoc-gen-go安装
- 下载安装protoc-gen-go
$ go get -u github.com/golang/protobuf/protoc-gen-go@v1.3.2
go: found github.com/golang/protobuf/protoc-gen-go in github.com/golang/protobuf v1.4.3
go: google.golang.org/protobuf upgrade => v1.25.0
- 将protoc-gen-go移动到被添加环境变量的任意path下,如$GOPATH/bin,由于go get后的二进制本身就在$GOPATH/bin目录中,因此只要确保你的$GOPATH/bin在环境变量即可。
Warning protoc-gen-go安装失败请阅读常见错误处理
window 安装protoc protoc-gen-go-grpc
1、如何在window下,根据*.proto 生成代码么?
2、下载protoc
https://github.com/protocolbuffers/protobuf/releases/download/v3.12.3/protoc-3.12.3-win64.zip
解压后,放到$GOPATH/bin目录下即可
3、如何生成protoc-gen-go-grpc ?
目前在github上,还没有提供release版本,需要自己根据源码生成
https://www.grpc.io/docs/languages/go/quickstart/
git clone -b v1.30.0 https://github.com/grpc/grpc-go
cd cmd/protoc-gen-go-grpc
go install .
4、生成*.pb.go代码
protoc --plugin=protoc-gen-go=$protoc-gen-go的路径 --go_out . helloworld.proto
5、如何生成*_grpc.pb.go
protoc --plugin=protoc-gen-go=$protoc-gen-go的路径 --go-grpc_out --go_out . helloworld.proto
原文链接
https://go-zero.dev/cn/protoc-install.html https://blog.csdn.net/u011582922/article/details/107346695