我有一个使用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)。