1.安装protoc-gen-go
默认下载安装的protoc是无法生成go代码的,需要安装一个插件,执行命令进行安装:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
这个插件安装在$GOBIN
目录下,确保protoc-gen-go能被protoc找到就行了。
2.使用proto
定义proto
定义一个Holo.proto【名字是啥,生成的pb就是啥名字】文件:
syntax = "proto3";
//c++使用package,生成的pb.h文件的namespace
package H.O.L.O;
//go使用go_package,必须得指定,否则无法生成pb
//go_package结构:[生成pb的路径]/包名字
//最终生成的pb所在路径为:go_out_path + [生成pb的路径]
option go_package = "./mypb/package_name";
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
生成pb
# 需要注意:--go_out=<PATH>,这个path必须是已经存在的,否则会报错.
protoc --proto_path=./ --go_out=./build-pb Holo.proto
此时生成的pb文件
ubuntu@Holo-wo:~/code/demo/proto_demo$ tree ./
./
├── Holo.proto
├── build-pb
│ └── mypb
│ └── Hello
│ └── Holo.pb.go
└── makefile
API使用⭐
pb的go接口,需要使用google.golang.org/protobuf/proto
包进行一些操作,具体可以查看:
proto package - google.golang.org/protobuf/proto - Go Packages
编译程序
比起cpp,编译go简直不要太简单😃
...