如何减少protobuf生成的代码?

时间:2016-02-22 11:21:25

标签: c++ protocol-buffers

protobuf编译器为.proto文件中的每个字段生成了很多方法。是否可以使它仅生成(例如:必需的字符串名称= 1;)set_name(const char * value)和name()only在c ++中。

2 个答案:

答案 0 :(得分:2)

对不起,没有选择。

请注意,大多数方法都是内联的。您不使用的内联方法将被编译器删除,不包含在输出二进制文件中。因此,拥有这么多方法的唯一真正问题是它可能会使编译速度变慢。

答案 1 :(得分:0)

在.proto文件中,将option optimize_for = ***;设置为CODE_SIZELITE_RUNTIME

CODE_SIZE选项实现与默认值相同的API,具有较小的lib大小。但是,LITE_RUNTIME实现了完整lib的子集。它不支持描述符或反射。这里给出了不同之处:https://developers.google.com/protocol-buffers/docs/reference/cpp-generated#message