0

我有以 proto2 格式编写并由 protoc-c 编译器编译的 C 代码。我想知道的是该代码是否与“protoc”编译器生成的序列化/反序列化代码二进制兼容(这也恰好理解 protobuf 的第 3 版)?由于某种原因,我无法得到这个问题的明确答案。我想知道的原因是因为版本 3 和版本 2 之间已经存在向后兼容性问题,所以我对 protoc-c 和 protoc 工具包以及它们如何处理版本有点不确定。

谢谢!

4

1 回答 1

3

是的,这两种实现应该是兼容的——您可以用一种实现序列化消息并用另一种实现成功解析它们。我没有亲自尝试过 protobuf-c,但根据它的描述,它只是相同协议缓冲区线格式的另一种实现。

syntax = "proto2"您提到了和之间的区别syntax = "proto3"。确实,这些是不同的,如果你想从一个迁移到另一个,你必须小心,但我认为这个问题与你关于 protobuf-c 和 Google 的 protobuf 实现之间兼容性的问题是正交的。

于 2017-03-14T14:26:42.053 回答