proto c -gen- go -grp c: программа не найдена или не может быть выполнена - PullRequest
2 голосов
/ 07 марта 2020

go version: go версия 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
)

Я выполняю следующую команду:

protoc -I ./src/pbdefs/protos/ --go-grpc_out=. src/pbdefs/protos/*.proto

для генерации моих GRP C выходных файлов из .proto файлов, при этом я получаю сообщение об ошибке

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.

Ответы [ 2 ]

5 голосов
/ 07 марта 2020

ОК, только что выяснил, согласно https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0

v1.20 protoc-gen-go не поддерживает генерацию определений службы gRP C. В будущем создание службы gRP C будет поддерживаться новым плагином c -gen- go -grp c, предоставленным проектом Go gRP C.

Версия github.com/golang/protobuf proto c -gen- go продолжает поддерживать gRP C и будет продолжать это делать в обозримом будущем.

0 голосов
/ 07 марта 2020

Если вы еще этого не сделали, вам нужно установить плагин protoc-gen-go следующим образом:

go get github.com/golang/protobuf/protoc-gen-go

, который установит плагин (если ваш GOPATH равен ${HOME}/go) для:

${HOME}/go/bin/protoc-gen-go

Затем при запуске protoc либо обновите свой путь, либо установите его динамически следующим образом:

PATH="${PATH}:${HOME}/go/bin" protoc ...
...