目录

如何安装 protoc 以及对应代码插件

一、关于 protoc

protoc 是一个用于生成代码的工具,它可以根据 proto 文件生成C++、Java、Python、Go、PHP 等多重语言的代码,

而 gRPC 的代码生成还依赖 protoc-gen-goprotoc-gen-go-grpc 插件来配合生成 Go 语言的 gRPC 代码。

protoc是一个独立的编译器,不是Go语言的包。

所以 go install命令不适用于安装protoc`编译器

二、安装 protoc

github 仓库找到对应版本进行下载:Releases · protocolbuffers/protobuf · GitHub

这里有个很狗的地方,github 上的 tag,和实际安装后 protoc 的版本不一样,只能下载后才能找到知道实际的版本

比如我这里要下 v3.19.4 ,但是对应的 tag 为 v21.11 对应的链接:

protoc-v3.19.4

下载后为 二进制执行文件:protoc

将文件移动到 GOBIN (一般是 $GOPATH/bin)目录下

执行:

protoc --version

成功即可看到版本

三、常用插件安装

(一)protoc-gen-go

生成 go 语言代码

# 安装最新版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

# 安装指定版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.33.0

# 指定环境安装安装后为对应环境的执行文件
GOOS=darwin GOARCH=arm64 go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.33.0

查看安装是否成功:

protoc-gen-go --version

(二)安装 protoc-gen-go-grpc

生成 go grpc 代码

# 安装最新版本
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

# 安装指定版本
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0

# 指定环境安装安装后为对应环境的执行文件
GOOS=darwin GOARCH=arm64 go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0

查看安装是否成功:

protoc-gen-go-grpc --version

那你知道如何自定义插件,生成自己的特定代码吗?

参考:protoc 自定义插件实现 go 自定义代码生成