web-dev-qa-db-ja.com

ファイルがproto_pathを使用して指定されたパス内にありません

別のディレクトリから.protoファイルをインポートしてテストしています。

$ GOPATH/src/A/A.proto

syntax = "proto3"; 
package A;
 message SomeMsg {
     string  msg = 2;
     int64   id  = 3;
 }

$ GOPATH/src/B/B.proto

syntax = "proto3"; 
package B; import "A/A.proto";
 message Msg {
     SomeMsg s = 1;
 }

私はこれをやっています:フォルダーA:

protoc A.proto --go_out=.

そして、フォルダB:

protoc B.proto --go_out=. --proto_path=$GOPATH/

しかし、私はこのエラーを受け取ります:

B.proto:--proto_path(または-I)を使用して指定されたパス内にファイルがありません。このファイルを含む--proto_pathを指定する必要があります。 proto_pathは.protoファイル名の正確な接頭辞でなければならないことに注意してください-protocは2つのパス(例:絶対パスと相対パス)が同等である場合を理解するのが困難です(想像より難しいです)。

7
Cubey Mew

エラーは私には十分にはっきりしているようです、それはあなたがB.protoがある正確なディレクトリを指定する必要があることを言っています

protoc B.proto --go_out=. --proto_path=$GOPATH/src/B 

または、すでにフォルダBにいる場合は、

protoc B.proto --go_out=.

プロトックな連中はおもしろい思ったより難しい !!!笑、なぜ私は「それが彼女の言ったことだ!」と言う欲求と闘っているのです。笑

2
Popmedic