目录
一、protobuf概念
ProtoBuf (Google Protocol Buffer)是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,类型于常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高的领域。
二、环境部署
1、go语言环境部署(略)
2、protobuf的编译器protoc
解压出protoc.exe文件
3、protobuf编译器go语言插件
命令行执行如下命令,下载源代码
go get github.com/golang/protobuf
D:\Go\bin>go get github.com/golang/protobuf
go: github.com/golang/protobuf upgrade => v1.5.2
下载后存放在%GOPATH%\pkg\mod\github.com\golang\[email protected]\protoc-gen-go
GOPATH路径可以通过go env命令查看(set GOPATH=C:\Users\Administrator\go)
在该目录下执行如下命令,生成protoc-gen-go.exe
go build
三、编写.proto文件生成.go文件
运行如下命令:
protoc.exe --go_out=./ ./xxxx.proto
注:运行后可能会报如下错误
protoc-gen-go: unable to determine Go import path for "xxxx.proto"
Please specify either:
• a "go_package" option in the .proto source file, or
• a "M" argument on the command line.
See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.
--go_out: protoc-gen-go: Plugin failed with status code 1.
需要在./proto文件中添加如下参数,之后可以正常生成
option go_package = “./SearchNode”;