【问题标题】:how to compile .proto + .options file using nanopb如何使用 nanopb 编译 .proto + .options 文件
【发布时间】:2017-08-24 07:21:12
【问题描述】:

我编写了一个 .options 文件并将其放在与 .proto 文件相同的目录中。 然后,我尝试使用命令编译它(使用 nanopb 编译器)

generator-bin/protoc --nanopb_out=. message.proto -s message.options

得到了这个错误:

Unknown flag: -s

那我做错了什么? 我需要在 .proto 文件中导入我的选项文件吗? 我还应该做些什么来让它发挥作用吗?

【问题讨论】:

  • 检查this,我想它可能对你有帮助。

标签: c protocol-buffers nanopb


【解决方案1】:

Google 的protoc 有一种特殊的语法,用于将选项传递给插件。插件选项作为nanopb_out 的参数放入,并用冒号(:)与实际目标路径分隔。

generator-bin/protoc '--nanopb_out=-v -f message.options:.' message.proto

但是,如果您的.options 文件与.proto 同名并且位于同一目录中,则 nanopb 插件应该会自动找到并使用它。

还请注意,nanopb 的-s 标志需要命令行上的一对设置,而-f 需要一个文件名。指定-v 对于获取详细消息也很有用,无论它是否加载了选项文件。您可以通过运行获取命令行选项的完整列表:

generator-bin/nanopb_generator --help

【讨论】:

  • 对我来说这不起作用。它接缝,插件只接受一个参数。如果我尝试generator-bin/protoc --nanopb_out=-T -v:. message.proto,我会收到错误Unknown flag: -v。你的单引号技巧也没有帮助。
  • 插件本身确实接受多个参数,但通过protoc 传递它们可能很困难。在外壳上使用时,引用整个部分应该可以工作。如果没有任何帮助,您始终可以分两步完成:protoc -o message.pb message.protopython nanopb_generator.py -T -v message.pb
  • 谢谢!这有帮助!
猜你喜欢
  • 2019-12-13
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多