Cub*_*Mew 5 go protocol-buffers
我正在测试从另一个目录导入.proto文件。
$ GOPATH / src / A / A.proto
syntax = "proto3";
package A;
message SomeMsg {
string msg = 2;
int64 id = 3;
}
Run Code Online (Sandbox Code Playgroud)
$ GOPATH / src / B / B.proto
syntax = "proto3";
package B; import "A/A.proto";
message Msg {
SomeMsg s = 1;
}
Run Code Online (Sandbox Code Playgroud)
我正在这样做:在文件夹A中:
protoc A.proto --go_out=.
Run Code Online (Sandbox Code Playgroud)
然后在文件夹B中:
protoc B.proto --go_out=. --proto_path=$GOPATH/
Run Code Online (Sandbox Code Playgroud)
但是我会得到这个错误:
B.proto:文件不位于使用--proto_path(或-I)指定的任何路径内。您必须指定包含此文件的--proto_path。请注意,proto_path必须是.proto文件名的精确前缀-protoc太笨拙,无法找出两个路径(例如绝对路径和相对路径)是否相等(这比您想象的要难得多)。
错误对我来说似乎足够清楚,它表明您需要指定B.proto所在的确切目录
protoc B.proto --go_out=. --proto_path=$GOPATH/src/B
Run Code Online (Sandbox Code Playgroud)
或者如果您已经在文件夹B中,
protoc B.proto --go_out=.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4938 次 |
最近记录: |