我有一個協議緩存文件(pcfg_lm.proto)以下代碼:在Protocol Buffers中,如何從上一級目錄導入文件?
import "../types/language.proto";
package nlp;
message PCFGProto {
required Language lang = 1;
}
當然並有一個原文件存在於../types/language.proto。然而,當我發出命令:
protoc pcfg_lm.proto --cpp_out=/tmp
以下是錯誤消息:
../types/language.proto: File not found.
pcfg_lm.proto: Import "../types/language.proto" was not found or had errors.
pcfg_lm.proto:6:12: "Language" is not defined.
我認爲必須有某種方式在上層目錄,指定文件名,不使用 - 我標誌。但我該怎麼做?
我遇到了同樣的問題,但我不記得解決方案。 IIRC導入路徑相對於您調用protoc的目錄進行解釋,而不是相對於當前proto文件本身。或者類似的東西... – LumpN 2011-03-24 13:52:44
地獄是啊,我只是找到了一些老的原始碼。正如我所描述的那樣。我從protoc --cpp_out = graph/node.proto圖/ edge.proto這樣的項目基目錄調用protoc,並且在邊緣有'import'graph/node.proto「;'即使這兩個文件都在同一個目錄。 – LumpN 2011-03-24 13:59:37