protobuf编译器为.proto文件中的每个字段生成了很多方法。是否可以使它仅生成(例如:必需的字符串名称= 1;)set_name(const char * value)和name()only在c ++中。
答案 0 :(得分:2)
对不起,没有选择。
请注意,大多数方法都是内联的。您不使用的内联方法将被编译器删除,不包含在输出二进制文件中。因此,拥有这么多方法的唯一真正问题是它可能会使编译速度变慢。
答案 1 :(得分:0)
在.proto文件中,将option optimize_for = ***;
设置为CODE_SIZE
或LITE_RUNTIME
。
CODE_SIZE
选项实现与默认值相同的API,具有较小的lib大小。但是,LITE_RUNTIME
实现了完整lib的子集。它不支持描述符或反射。这里给出了不同之处:https://developers.google.com/protocol-buffers/docs/reference/cpp-generated#message