同包内直接引用
|proto
|--a.proto
|--b.proto
a.proto文件
syntax = "proto3";
package message;
option go_package = "";
message Test{
optional string name = 1;
}
b.proto文件
syntax = "proto3";
package message;
option go_package = "";
import "b.proto";
message Test{
optional Test cstest = 1;
}
- 直接在当前proto文件下面执行protoc生成对应的pb.go文件
不同包中引用
|proto_test
|--proto
|----a
|------a.proto
|----b
|-----b.proto
- 在a.proto中引用b.proto文件,module 为
proto_test
,a.proto和b.proto文件中内容同上 - 注意
- proto 文件的 import 需要从 gopath 路径过来(即项目名开始的绝对路径)。
- protoc -I 路径需要到 gopath。
- 命令:
protoc -I ../../ -I ./ --go_out=. *.proto
,不能使用当前module目录,import需要从GOPATH 路径引用过来的,所以参数一应该 …/…/ 到GOPATH,这样才能引用出来,否则protoc命令不会报错,但是编译出来的pb.go文件是有问题的