我写了一个 .options 文件并将其放在与 .proto 文件相同的目录中。然后,我尝试使用命令编译它(使用 nanopb 编译器)
generator-bin/protoc --nanopb_out=. message.proto -s message.options
并得到这个错误:
Unknown flag: -s
那我做错了什么?我需要在 .proto 文件中导入我的选项文件吗?我还应该做些什么来让它发挥作用吗?
我写了一个 .options 文件并将其放在与 .proto 文件相同的目录中。然后,我尝试使用命令编译它(使用 nanopb 编译器)
generator-bin/protoc --nanopb_out=. message.proto -s message.options
并得到这个错误:
Unknown flag: -s
那我做错了什么?我需要在 .proto 文件中导入我的选项文件吗?我还应该做些什么来让它发挥作用吗?
谷歌protoc
有一种特殊的语法用于将选项传递给插件。插件选项作为参数放置nanopb_out
在实际目标路径中,并用冒号 ( :
) 分隔。
generator-bin/protoc '--nanopb_out=-v -f message.options:.' message.proto
但是,如果您的.options
文件与 同名.proto
并且在同一目录中,则 nanopb 插件应该会自动找到并使用它。
另请注意,-s
nanopb 的标志需要命令行上的一对设置,而-f
需要一个文件名。-v
无论是否加载选项文件,指定对于获取详细消息也很有用。您可以通过运行以下命令获取命令行选项的完整列表:
generator-bin/nanopb_generator --help