2017-04-23 33 views
0

我有一个名为myProtos库,它看起来像这样protobuf的golang进口.proto和.pb.proto在不同的目录

. 
|-- proto 
|---- hello.proto 
| 
|-- generated 
└---- hello.pb.go 

我有外面叫example.proto一个.proto文件应导入hello.proto

因此,该文件的顶部看起来是这样的:

syntax = "proto3"; 
package example; 
import "path/to/myProtos/proto/hello.proto" 

现在,当我编译example.proto我得到0123的导入错误,因为它有导入行导入“path/to/myProtos/proto/hello.pb.go”

我试着添加两个导入路径,但是我得到'导入但未使用的错误'。我也尝试做相对导入,并将两个目录作为标志传递给protoc,它可以工作,但我需要go文件中的导入路径是绝对路径。

我该如何告诉protoc在路径文件中路径不同?

这种情况下是否有更好的“最佳实践”?

回答

0

在您的hello.proto文件中使用package generated;

然后,protoc -I proto/ proto/*.proto --go_out=generated将在generated文件夹内以generated的包名称生成hello.pb.go

proto文件中的包告诉protobuf生成器在生成的文件中使用哪个包。