nanopb 不应用选项
nanopb not applying options
我有以下原型定义
syntax = "proto3";
message SimpleMessage {
repeated int32 lucky_numbers = 1;
}
和选项文件
SimpleMessage.lucky_numbers max_size:10 fixed_length:true
我 运行 协议如下
protoc --plugin=protoc-gen-nanopb=nanopb/generator/protoc-gen-nanopb ./simple.proto "--nanopb_out=-v -f simple.options:."
并且它正确地选择了选项(不知道为什么它打印了两次相同的东西)
Options for SimpleMessage.lucky_numbers: max_size: 10
proto3: true
fixed_length: true
现在,当我检查生成的 simple.pb.h
时,我看到
/* Struct definitions */
typedef struct _SimpleMessage {
pb_callback_t lucky_numbers;
} SimpleMessage;
我期待 int32_t lucky_numbers[10];
如文档所示。知道我哪里出错了吗?
试试这个:
SimpleMessage.lucky_numbers max_count:10 fixed_count:true
长度设置用于字符串和字节字段,而计数设置用于数组。它们是分开的,因为您可以有字符串数组并指定两个选项。
字段选项的文档是 here, and the most complete information is in the source code comments。
调试消息加倍的原因是 nanopb 生成器对所有输入文件进行初步解析以收集任何依赖项,然后解析要求它再次生成的文件。
我有以下原型定义
syntax = "proto3";
message SimpleMessage {
repeated int32 lucky_numbers = 1;
}
和选项文件
SimpleMessage.lucky_numbers max_size:10 fixed_length:true
我 运行 协议如下
protoc --plugin=protoc-gen-nanopb=nanopb/generator/protoc-gen-nanopb ./simple.proto "--nanopb_out=-v -f simple.options:."
并且它正确地选择了选项(不知道为什么它打印了两次相同的东西)
Options for SimpleMessage.lucky_numbers: max_size: 10
proto3: true
fixed_length: true
现在,当我检查生成的 simple.pb.h
时,我看到
/* Struct definitions */
typedef struct _SimpleMessage {
pb_callback_t lucky_numbers;
} SimpleMessage;
我期待 int32_t lucky_numbers[10];
如文档所示。知道我哪里出错了吗?
试试这个:
SimpleMessage.lucky_numbers max_count:10 fixed_count:true
长度设置用于字符串和字节字段,而计数设置用于数组。它们是分开的,因为您可以有字符串数组并指定两个选项。
字段选项的文档是 here, and the most complete information is in the source code comments。
调试消息加倍的原因是 nanopb 生成器对所有输入文件进行初步解析以收集任何依赖项,然后解析要求它再次生成的文件。