: ../.../...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にコンパイルされますか?)
Protobufのバージョンとprotoc-gen-goのバージョンによって異なります。
必要な追加の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
1つのシステムでlibproto 3.6.1がproto2にコンパイルされることに気付きましたが、これは理解できません。
これについてはわかりませんが、正しく覚えていれば、決定要因はprotoc-gen-goバージョンです。
それが役に立てば幸い!
次のエラーが発生した場合:
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
お役に立てば幸いです!