安装protoc
下载地址:link
windows直接下载,将protoc.exe放入gopath下的bin目录。
linux需要编译,网上有相关教程,这里不做演示了。
安装protobuf
安装库文件
go get -u github.com/golang/protobuf/proto
安装工具
1、go get -u github.com/golang/protobuf/protoc-gen-go
2、创建test.proto文件
syntax = "proto3"; //版本号
package pb; //包名
option go_package = "./";//需要指明生成的go文件路径
enum ClassName{//枚举
class1 = 0; //标号 必须从 0开始
class2 = 1;
class3 = 2;
}
message Student{//消息,对应于Go的结构体
string name = 1; //1:标号,唯一 即可(相当于数据库中的Id,不一定要从1 ,2的顺序依次排列。)
int32 age = 2; //必须指定整型的范围,如int32,int64
string address = 3;
ClassName cn = 4;
}
message Students{
repeated Student person = 1; // repeated 修饰,相当于Go中切片
string school = 2;
}
3、执行protoc --go_out=. *.proto生成test.pb.go文件。
需要注意的是在编写proto文件时需要指明生成go文件的路径,否则会出现如下错误:
安装gogoprotobuf
安装库文件
go get github.com/gogo/protobuf/proto
go get github.com/gogo/protobuf/gogoproto //这个不装也没关系
安装工具
//gogo
go get github.com/gogo/protobuf/protoc-gen-gogo
//gofast
go get github.com/gogo/protobuf/protoc-gen-gofast
生成go文件
//gogo
protoc --gogo_out=. *.proto
//gofast
protoc --gofast_out=. *.proto