未定义:proto.ProtoPackageIsVersion3

Abh*_*tia 8 go protocol-buffers

我知道: ../.../...pb.go:21:11: undefined: proto.ProtoPackageIsVersion3 我要版本2

protochttps://github.com/google/protobuf/releases $ protoc --versionGive 安装libprotoc 3.6.0。我也golang-goprotobuf-dev从安装apt

问题:

  1. protoc(protobuffer编译器总是编译到Proto3版本吗?)
  2. 需要额外的Go支持吗?
  3. 我如何获得可以编译到Proto2的编译器?
  4. 我在一个系统中注意到libproto 3.6.1可以编译为proto2,我不明白这一点。

And*_*ldo 8

  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
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我在一个系统中注意到libproto 3.6.1可以编译为proto2,我不明白这一点。

    不确定这一点,但是如果我没记错的话,决定因素是您的protoc-gen-go版本。

希望能帮助到你!