错误描述
生成GRpc代码提示错误
'protoc-gen-go-grpc' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.
复制代码
问题分析和解决
回答1:
OK, just found out, as per github.com/protocolbuf…
The v1.20
protoc-gen-go
does not support generating gRPC service definitions. In the future, gRPC service generation will be supported by a new protoc-gen-go-grpc plugin provided by the Go gRPC project.The
github.com/golang/protobuf
version of protoc-gen-go continues to support gRPC and will continue to do so for the foreseeable future.
EDIT 29/05/2020:
Following an update from @Mark in the comments, according to the Tracking issue on github, protoc-gen-go-grpc
has now been merged. However, according to the same issue:
Even with this merged, it is unreleased (v0.0) and subject to change. We do plan to add a requirement that the Unimplemented service implementation be included in all registered services, with an escape hatch in the form of a command-line arg as suggested by @neild.
回答2:
If you haven't done, so you need to install the protoc-gen-go
plugin like so:
go get github.com/golang/protobuf/protoc-gen-go
复制代码
this will install the plugin (if your GOPATH
is ${HOME}/go
) to:
${HOME}/go/bin/protoc-gen-go
复制代码
Then when running protoc
, either update your path, or set it dynamically like so:
PATH="${PATH}:${HOME}/go/bin" protoc ...
复制代码
回答3:
the missing plugin has been implemented at github.com/grpc/grpc-g….
command below should fix it
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
复制代码