如何安装 protoc 以及对应代码插件
一、关于 protoc
很多新手会混淆“protoc”和“代码插件”,其实两者是“编译器+辅助工具”的关系:
-
protoc:是Protocol Buffers的官方编译器,核心作用是解析Proto文件语法。但它只能做语法解析,不能直接生成某门语言的代码——比如要生成Go代码,必须配合Go插件。
-
代码插件:是针对特定语言的扩展工具,比如Go的
protoc-gen-go、Java的protoc-gen-javalite。protoc解析完Proto文件后,会调用对应插件生成该语言的实体类、接口代码。
简单说:protoc是基础,没它啥也干不了;代码插件是针对性工具,要生成哪种语言代码就装哪种插件。下面先讲protoc的全系统安装,再重点讲Go插件的配置。
protoc 是一个用于生成代码的工具,它可以根据 proto 文件生成C++、Java、Python、Go、PHP 等多重语言的代码,
而 gRPC 的代码生成还依赖 protoc-gen-go,protoc-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
将文件移动到 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那你知道如何自定义插件,生成自己的特定代码吗?
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/grpc-protoc-plugin-install/
备用原文链接: https://blog.fiveyoboy.com/articles/grpc-protoc-plugin-install/