2017-04-23 31 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生成器在生成的文件中使用哪個包。