protobuf c++ 生成 Message 而不是 MessageLite

protobuf c++ generate Message instead of MessageLite

我有一些原型定义要编译成 C++ headers/code。当我这样做时,所有数据类型都是 MessageLite,据我所知,这对于资源受限设备来说更轻量级。

然而,MessageLite 缺少我需要的一堆功能(例如:MessageToJsonStringSerializeToOsStream)。有没有办法让 protoc 生成 Message 而不是 MessageLite

或者,是否有更好的方法来处理 MessageLite?即,调试并序列化到文件?

在您的 protobuf 定义中查找以下行:

option optimize_for = LITE_RUNTIME;

然后将其注释掉或删除。该行指示 protoc 使用 MessageLite,而不是 Message。