我知道: ../.../...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个赞
protoc(protobuffer 编译器总是编译到 Proto3 版本?)
这取决于你的 protobuf 版本和你的 protoc-gen-go 版本。
需要什么额外的支持?
我想你需要安装protoc-gen-go
我怎样才能得到一个编译为 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
我注意到在一个系统中 libproto 3.6.1 编译为 proto2,我不明白这一点。
不确定这个,但如果我没记错的话,决定因素是你的 protoc-gen-go 版本。
交互式爱情
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
希望它有所帮助!
jeck猫
TA贡献1909条经验 获得超7个赞
我跑了这个:
go get github.com/gogo/protobuf
基本上它更新github.com/gogo/protobuf v1.2.1
为github.com/gogo/protobuf v1.3.1
- 3 回答
- 0 关注
- 196 浏览
添加回答
举报
0/150
提交
取消