登录
首页 >  Golang >  Go问答

如何正确使用 protoc-gen-go-grpc 工具?

来源:stackoverflow

时间:2024-02-17 17:33:22 308浏览 收藏

本篇文章向大家介绍《如何正确使用 protoc-gen-go-grpc 工具?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我正在尝试为一些 protocol buffers 以及 grpc 服务生成 go 代码。

过去,我使用 https://github.com/golang/protobuf 和生成命令,如下所示:

//go:generate protoc --proto_path=. --go-out=. --go_opt=paths=source_relative .proto
//go:generate protoc --proto_path=. --go_grpc_out=. --go_grpc_opt=paths=source_relative .proto

此方法效果很好,但该存储库已被 google.golang.org/protobufgoogle.golang.org/grpc 取代。

据我所知,这是有意拆分的,目的是将 protobuf 和 grpc 项目发布周期分开。

使用新的存储库,我安装了如下工具:

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

这两个工具均已安装,并且在路径上可见。我遇到的问题是 protocprotoc-gen-go 正在寻找较旧的工具 - protoc-gen-go_grpc。请注意下划线。

我一直在阅读我能找到的所有文档和 github 问题,但尚未弄清楚如何使用新的 protoc-gen-go-grpc。注意破折号。

$ echo $GOPATH
/Users//dev/go

$ echo $GOBIN
/Users//dev/go/bin

$ which protoc
/opt/homebrew/bin/protoc

$ which protoc-gen-go
/Users//dev/go/bin/protoc-gen-go

$ which protoc-gen-go_grpc
protoc-gen-go_grpc not found

$ which protoc-gen-go-grpc
/Users//dev/go/bin/protoc-gen-go-grpc

正确答案


我的问题很容易解决,但找到起来却很烦人。

运行 protoc 时,使用 --go_grpc_out 标志查找 protoc-gen-go_grpc

运行 protoc 时,使用 --go-grpc_out 标志查找 protoc-gen-go-grpc

似乎 protoc 没有明确定义、记录的标志,并且在提供不正确的标志时出错,而是使用标志来确定要使用哪个插件。如果您拼错了该标志,它会查找错误的插件。

本篇关于《如何正确使用 protoc-gen-go-grpc 工具?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>