簡體   English   中英

在Protocol Buffers中,如何從上層目錄導入文件?

[英]In Protocol Buffers, how to import a file from the upper level directory?

我在協議緩沖區文件(pcfg_lm.proto)中有以下代碼:

import "../types/language.proto";

package nlp;

message PCFGProto {
  required Language lang = 1;
}

當然,在../types/language.proto中存在一個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.

我認為必須有一些方法來指定上層目錄中的文件名,而不使用-I標志。 但是我該怎么做?

您可以使用--proto_path =指令指定要搜索導入的目錄。 如果需要,可以多次使用。

正確的--proto_path將取決於如何在導入的文件(language.proto)中定義包。

  1. 如果導入的文件(language.proto)包含包類型;

    指定--proto_path = 父目錄並將導入更改為

    import“types / language.proto”;

  2. 如果導入的文件沒有包

    指定--proto_path = 父目錄/類型並將導入更改為

    import“language.proto”;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM