我有一个使用proto2和libprotobuf2.x的旧版应用程序。我希望该应用程序可以与proto3交流。
我在thread中检查了可能的解决方案和讨论
说libprotobuf3.x提供了与proto2的兼容性。
这是否意味着我可以使用为proto2生成的相同proto(with proto2)和相同的代码存根pb.h / pb.cpp,而只需将我的旧版应用程序与libprotobuf3.x链接起来,它将像魅力一样起作用?
我不想将遗留的proto更新为proto3,因为它可能需要对遗留代码进行重大重构。

最佳答案

不,您不能将.pb.* 2.0生成的protoc文件与libprotobuf 3.0链接。
就像任何共享库一样,主版本号的增加意味着API的重大更改。
proto2的兼容性意味着支持Proto 2语法(syntax = "proto2")。另外,proto3与线路上的proto2二进制兼容。

如果您使用.pb 3重新生成protoc文件并重新编译,则很有可能无需重构即可工作(默认语法仍为proto2)。

07-26 09:34