Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
协议缓冲区2和3位于同一个C++;Linux应用程序 我有一个C++的Linux应用程序,已经使用了Prim2.0./P>_C++_Linker_Protocol Buffers - Fatal编程技术网

协议缓冲区2和3位于同一个C++;Linux应用程序 我有一个C++的Linux应用程序,已经使用了Prim2.0./P>

协议缓冲区2和3位于同一个C++;Linux应用程序 我有一个C++的Linux应用程序,已经使用了Prim2.0./P>,c++,linker,protocol-buffers,C++,Linker,Protocol Buffers,它现在还需要能够解析特定的proto3模式 不幸的是,升级proto2模式不是一个选项;两人都没有降级proto3 我知道设计的味道,但这是我必须要处理的 同时支持这两个人最不痛苦的方式是什么 < >我理解C++ PB库允许动态加载 .PROTO 而不是使用 PotoCo/。如果我沿着这条路走下去,我是否也必须完全改变proto2位?proto2和proto3动态加载程序能否共存 想到的另一个解决方案是在共享对象中进行proto3解析并动态链接它 还有其他想法吗?@AlanBirtles让我意识

它现在还需要能够解析特定的proto3模式

不幸的是,升级proto2模式不是一个选项;两人都没有降级proto3

我知道设计的味道,但这是我必须要处理的

同时支持这两个人最不痛苦的方式是什么

< >我理解C++ PB库允许动态加载<代码> .PROTO 而不是使用<代码> PotoCo/<代码>。如果我沿着这条路走下去,我是否也必须完全改变proto2位?proto2和proto3动态加载程序能否共存

想到的另一个解决方案是在共享对象中进行proto3解析并动态链接它


还有其他想法吗?

@AlanBirtles让我意识到proto2和proto3之间不存在这样的不兼容问题。我只需要确保所有生成的
.pb.*
文件都是使用相同版本的
protoc

生成的,我只是尝试将一个带有protobuf 2语法的文件添加到protobuf 3项目中,它不需要做任何特殊的工作。你有什么问题?@AlanBirtles我想你给我指明了正确的方向。生成的Prime2C++文件来自外部源,它们是由旧版本的PotoC生成的,而不是我使用的。我认为proto2和proto3根本不兼容。