web-dev-qa-db-fra.com

Impossible de construire le protobuf pour aller au point final

utilisant la version 2.6.1 de protobuf (que j’ai installée via homebrew) 

J'essaye de courir 

$ protoc --go_out=../cloud/ *.proto

Je continue à recevoir cette erreur. 

$ protoc-gen-go: program not found or is not executable
$ --go_out: protoc-gen-go: Plugin failed with status code 1.

J'ai le protoc-gen-go installé dans mon chemin d'accès. Quelqu'un d'autre a ce problème?

41
R.J. Robinson

protoc-gen-go doit figurer dans votre Shell chemin, c’est-à-dire l’un des répertoires répertoriés dans la variable d’environnement PATH, qui est différent du chemin Go. Vous pouvez tester cela en tapant simplement protoc-gen-go sur la ligne de commande: Si le message "commande introuvable" (ou similaire) ne figure pas dans votre PATH.

38
Kenton Varda

En utilisant 

$ go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

est plus sûr que d'utiliser 

$ Sudo apt-get install golang-goprotobuf-dev

Parce que le dernier protoc-gen-go utilise la lib github.com/golang/protobuf/proto, mais protoc-gen-go dans apt-get en utilisant la lib code.google.com/p/goprotobuf/proto qui n'existait pas maintenant.

22
Xibai Li

Sur Ubuntu 18.04, ceci est vérifié pour résoudre ce problème: 

Sudo apt-get install golang-goprotobuf-dev

6
00imvj00
  1. Vous devez définir correctement votre GO_PATH - où se trouvent vos paquets go Live . En d'autres termes, GO_PATH est votre espace de travail go. Le GO_PATH.__ devrait être ~/go.

  2. protoc-gen-go devrait être dans votre PATH. Alors que protoc-gen-go habite dans $GO_PATH/bin après l'avoir installé.


Ajoutez ces 2 lignes importantes à votre ~/.bash_profile:

export GO_PATH=~/go
export PATH=$PATH:/$GO_PATH/bin

Ensuite, vous devez démarrer une nouvelle session Shell ou simplement taper dans cette ligne:

$ source ~/.bash_profile
3
Quy Tang

Comment j'ai résolu:

  1. Ajoutez $GOPATH/bin à PATH en exécutant export PATH=$PATH:$GOPATH/bin
  2. ajoutez export GOPATH=$(go env GOPATH) ci-dessus export PATH=$PATH:$GOPATH/bin ligne à l'intérieur du fichier .bash_profile.
  3. exécutez à nouveau go get -u pour les packages requis.
  4. lancez le code protoc --go_out=../cloud/ *.proto dans votre cas.
2
ShiningGo

J'ai rencontré le même problème. 

$ protoc --go_out=plugins=grpc:pb/ *.proto
protoc-gen-go: program not found or is not executable
--go_out: protoc-gen-go: Plugin failed with status code 1.

La solution ci-dessous:

Recherchez le répertoire d'installation de protoc-gen-go, il doit être dans votre $PATH.

export PATH=$PATH:/path/to/dir

Vous feriez mieux de l'ajouter à votre .bash_profile

echo $"export PATH=\$PATH:$(/path/to/dir)" >> ~/.bash_profile
source ~/.bash_profile

alors tout va bien.

1
pangpang

Assurez-vous que le chemin d'accès à proton-gen-go dans votre variable PATH est absolu (à savoir /Users/me/go/bin au lieu de ~/go/bin.

Apparemment, protoc ne sait pas comment développer ~

0
Pep

Mby aidera pour quelqu'un. Je suis sur Fedora 29.

Quand j'ai installé Go j'ai fait:

echo 'export GOPATH=$HOME/Go' >> $HOME/.bashrc
source $HOME/.bashrc

Donc j'ai mon GOPATH mis en place . Ensuite je fais:

echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc
source $HOME/.bashrc

Et mon compilateur protoc fonctionne comme un charme.

0
Dzintars