我有一些原型(prototype)定义,我想编译为C++ header /代码。当我这样做时,所有数据类型都是MessageLite,我知道对于资源约束设备而言,它的重量更轻。

但是,MessageLite缺少我需要的一堆函数(例如:MessageToJsonStringSerializeToOsStream)。有一种方法让protoc生成Message而不是MessageLite吗?

或者,是否有更好的方式使用MessageLite?即,调试并序列化到文件?

最佳答案

在protobuf定义中查找以下行:
option optimize_for = LITE_RUNTIME;
然后将其注释掉,或将其删除。该行指示协议(protocol)使用MessageLite,而不是Message。

关于c++ - protobuf c++生成Message而不是MessageLite,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45579049/

10-10 13:19