undefined: proto.ProtoPackageIsVersion3 - PullRequest
0 голосов
/ 28 декабря 2018

Я получаю : ../.../...pb.go:21:11: undefined: proto.ProtoPackageIsVersion3 Я хочу, чтобы это Версия 2

Я установил protoc из https://github.com/google/protobuf/releases $ protoc --version дает libprotoc 3.6.0.Я также установил golang-goprotobuf-dev из apt.

Вопросы:

  1. protoc (компилятор protobuffer всегда компилируется в версию Proto3?)
  2. Что такое дополнительный ходподдержка требуется?
  3. Как получить компилятор, который компилируется в Proto2?
  4. Я заметил, что в одной системе libproto 3.6.1 компилируется в proto2, я не понимаю этого.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

, если вы столкнулись со следующей ошибкой:

   undefined: proto.ProtoPackageIsVersion3

из-за неправильной версии protoc-gen-go.

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

Надеюсь, это поможет!

0 голосов
/ 28 декабря 2018
  1. protoc (компилятор protobuffer всегда компилируется в версию Proto3?)

    Это зависит от вашей версии protobuf и вашей версии protoc-gen-go.

  2. Какая дополнительная поддержка go требуется?

    Я думаю, вам нужно установить protoc-gen-go

  3. Как можноЯ получаю компилятор, который компилируется в Proto2?

    Установить конкретную версию protoc-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. Я заметил, что в одной системе libproto 3.6.1 компилируется вProto2, я не понимаю этого.

    Не уверен насчет этого, но, если я правильно помню, определяющим фактором является ваша версия Proto-gen-go.

Надеюсь, это поможет!

...