代码之家  ›  专栏  ›  技术社区  ›  Abhishek Bhatia

未定义:proto。原型软件包版本3

  •  3
  • Abhishek Bhatia  · 技术社区  · 6 年前

    我明白了 : ../.../...pb.go:21:11: undefined: proto.ProtoPackageIsVersion3 我想要第二版

    我安装了 protoc 从…起 https://github.com/google/protobuf/releases $ protoc --version 给予 libprotoc 3.6.0 .我还安装了 golang-goprotobuf-dev 从…起 apt .

    问题:

    1. protoc(protobuffer编译器总是编译成Proto3版本?)
    2. 需要什么额外的go支持?
    3. 如何获得编译为Proto2的编译器?
    4. 我注意到在一个系统中,libproto 3.6.1编译成proto2,我不明白这一点。
    1 回复  |  直到 6 年前
        1
  •  8
  •   Andy Aldo    6 年前
    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,我不明白这一点。

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

    希望有帮助!

        2
  •  2
  •   xiaolong ran    5 年前

    如果遇到以下错误:

       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
    

    希望能有帮助!

        3
  •  0
  •   Titi Wangsa bin Damhore    4 年前

    我运行了这个:

    go get github.com/gogo/protobuf
    

    基本上是更新的 github.com/gogo/protobuf v1.2.1 github.com/gogo/protobuf v1.3.1