问题
go version
: go version go1.14 linux/amd64
go.mod
module [redacted]
go 1.14
require (
github.com/golang/protobuf v1.4.0-rc.2
google.golang.org/grpc v1.27.1
google.golang.org/protobuf v1.20.0 // indirect
)
I am running the following command:
protoc -I ./src/pbdefs/protos/ --go-grpc_out=. src/pbdefs/protos/*.proto
to generate my GRPC output files from .proto
files, with I am getting an error
protoc-gen-go-grpc: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.
回答1:
OK, just found out, as per https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0
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.
回答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 ...
来源:https://stackoverflow.com/questions/60578892/protoc-gen-go-grpc-program-not-found-or-is-not-executable