我得到 : ../.../...pb.go:21:11: undefined: proto.ProtoPackageIsVersion3
我想要版本 2
我从 https://github.com/google/protobuf/releases $ protoc --version
安装了 protoc
给出了 libprotoc 3.6.0
。我还从 apt
安装了 golang-goprotobuf-dev
。
问题:
- protoc(protobuffer 编译器总是编译到 Proto3 版本?)
- 需要什么额外的支持?
- 如何获得可以编译为 Proto2 的编译器?
- 我注意到在一个系统中 libproto 3.6.1 编译为 proto2,我不明白这一点。
最佳答案
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 版本。
希望对您有所帮助!
关于go - 未定义 : proto. ProtoPackageIsVersion3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53952723/