protobuf 中go_package的意思
一个简单的 protobuf 文件定义如下:
response.proto
syntax = "proto3";
option go_package = "github.com/TripleCGame/apis/api;api";
import "google/protobuf/struct.proto";
message Response {
int32 code = 1;
google.protobuf.Struct data = 2;
string msg = 3;
}
syntax = “proto3”;—指定使用 proto3 语法
option go_package = "github.com/TripleCGame/apis/api;api";—前一个参数用于指定生成文件的位置,后一个参数指定生成的 .go 文件的 package 。具体语法如下:
|
注意:这里指定的 out_path 并不是绝对路径,只是相对路径或者说只是路径的一部分,和 protoc 的 --go_out
拼接后才是完整的路径。
生成的pb.go文件:
go_package的定义也体现在import 该proto的文件的地方:
这里刚好import的时候制定路径