web-dev-qa-db-fra.com

undefined: proto.ProtoPackageIsVersion3

Je reçois : ../.../...pb.go:21:11: undefined: proto.ProtoPackageIsVersion3 Je le veux pour la version 2

J'ai installé protoc à partir de https://github.com/google/protobuf/releases $ protoc --version donne libprotoc 3.6.0. J'ai également installé golang-goprotobuf-dev de apt.

Des questions:

  1. protocole (le compilateur de protobuffers compile toujours vers la version Proto3?)
  2. Quel est le support go supplémentaire requis?
  3. Comment puis-je obtenir un compilateur qui compile vers Proto2?
  4. J'ai remarqué que dans un système libproto 3.6.1 compile en proto2, je ne comprends pas cela.
8
Abhishek Bhatia
  1. protocole (le compilateur de protobuffers compile toujours vers la version Proto3?)

    Cela dépend de votre version de protobuf et de votre version de protocol-gen-go.

  2. Quel est le support go supplémentaire requis?

    Je pense que vous devrez installer protocol-gen-go

  3. Comment puis-je obtenir un compilateur qui compile vers Proto2?

    Installer une version spécifique de Protocol-Gen-Go

    GIT_TAG="v1.2.0" # change as needed
    go get -d -u github.com/golang/protobuf/protoc-gen-go
    git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG
    go install github.com/golang/protobuf/protoc-gen-go
    
  4. J'ai remarqué que dans un système libproto 3.6.1 compile en proto2, je ne comprends pas cela.

    Je ne suis pas sûr de celui-ci, mais si je me souviens bien, le facteur déterminant est votre version protocol-gen-go.

J'espère que ça aide!

8
Andy Aldo

si vous avez rencontré l'erreur suivante:

   undefined: proto.ProtoPackageIsVersion3

c'est parce que la version de Protocol-gen-go n'est pas correcte.

 $ git clone https://github.com/golang/protobuf
 $ cd ~/protobuf/protoc-gen-go
 $ git checkout tags/v1.2.0 -b v1.2.0
 $ go install

J'espère que ça aide!

2
xiaolong ran