为了账号安全,请及时绑定邮箱和手机立即绑定

未定义:proto.ProtoPackageIsVersion3

未定义:proto.ProtoPackageIsVersion3

Go
犯罪嫌疑人X 2023-05-22 17:09:52
我知道: ../.../...pb.go:21:11: undefined: proto.ProtoPackageIsVersion3 我想要它到第 2 版我protoc从https://github.com/google/protobuf/releases $ protoc --versiongives安装libprotoc 3.6.0。我也是golang-goprotobuf-dev从apt.问题:protoc(protobuffer 编译器总是编译到 Proto3 版本?)需要什么额外的支持?我怎样才能得到一个编译为 Proto2 的编译器?我注意到在一个系统中 libproto 3.6.1 编译为 proto2,我不明白这一点。
查看完整描述

3 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

  1. protoc(protobuffer 编译器总是编译到 Proto3 版本?)

    这取决于你的 protobuf 版本和你的 protoc-gen-go 版本。

  2. 需要什么额外的支持?

    我想你需要安装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

  1. 我注意到在一个系统中 libproto 3.6.1 编译为 proto2,我不明白这一点。

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


查看完整回答
反对 回复 2023-05-22
?
交互式爱情

TA贡献1712条经验 获得超3个赞

如果您遇到以下错误:

   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

希望它有所帮助!


查看完整回答
反对 回复 2023-05-22
?
jeck猫

TA贡献1909条经验 获得超7个赞

我跑了这个:

go get github.com/gogo/protobuf

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


查看完整回答
反对 回复 2023-05-22
  • 3 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信