web-dev-qa-db-fra.com

protoc-gen-go-grpc: programme introuvable ou non exécutable

go version: aller à la 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
)

J'exécute la commande suivante:

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

pour générer mes fichiers de sortie GRPC à partir de .proto fichiers, avec j'obtiens une erreur

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.
6
Ayush Gupta

le plugin manquant a été implémenté à https://github.com/grpc/grpc-go .

la commande ci-dessous devrait le réparer

go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
3
irzhy

Le Golang Protobuf a publié une nouvelle version des tampons de protocole Go qu'ils appellent APIv2.

Étant donné qu'APIv2 n'est pas rétrocompatible avec APIv1, nous devrons donc adapter tout notre code Golang pour la nouvelle API.

Vous pouvez en savoir plus sur la nouvelle API ici et ici

Étapes de la migration:

Afin d'exécuter la nouvelle génération de code, il sera nécessaire d'installer les plugins gRPC gen suivants:

go get -u google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go

go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc

Utilisez ensuite la commande suivante pour générer le code.

  # generate the messages
 protoc --go_out="$GO_GEN_PATH" -I "$dependecies" "$proto"

 # generate the services
 protoc --go-grpc_out="$GO_GEN_PATH" -I "$dependecies" "$proto"
0
Alexsandro Souza