使用protobuffer,出现报错Expected top-level statement (e.g. "message").
1. 运行环境
go环境 与 protoc版本
[root@gopher ~]# go version
go version go1.18.3 linux/amd64
[root@gopher ~]# protoc –version
libprotoc 3.21.5
使用的protoc版本(已编译二进制文件)
github.com/protocolbuffers/protobu...
go插件安装:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
参考:developers.google.com/protocol-buf...
2. 问题描述?
编译protoc文件报错:
[root@gopher pb]# protoc –go_out=./ Person.proto
Person.proto1: Expected top-level statement (e.g. “message”).
proto文件内容
syntax = "proto3";
//package pb;
go_package pb;
message Foo {
repeated int32 items = 1;
}
message Bar {
repeated Foo items = 1;
}
3. 您期望得到的结果?
4. 您实际得到的结果?
[root@gopher pb]# protoc –go_out=./ Person.proto
Person.proto1: Expected top-level statement (e.g. “message”).
问题已经解决,可以参考此链接的原文示例的protocolbuffer来编译,可以通过。问题在最初的proto文件格式有问题:developers.google.com/protocol-buf...