2017-04-23 10 views
0

I持って、私はインポートする必要があります外example.protoと呼ば.protoファイルを持っているこのいるProtobuf golang輸入.protoと.pb.proto

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

のように見えますmyProtosと呼ばれるライブラリ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=generatedgeneratedのパッケージ名でhello.pb.gogenerated内部のフォルダが生成されます。

protoファイル内のパッケージは、生成されたファイル内でどのパッケージを使用するかをprotobufジェネレータに伝えます。