我有一个协议缓存文件(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