2017-06-02 74 views
1

我正在尝试将项目从Google协议缓冲区3.0.0-beta-2移植到3.1.0。在重新编译我的.proto文件后,我注意到由于protoc执行了一个我没有选择的编码标准并相应地重命名字段,所以我在项目中遇到了一些编译错误。我不想重命名MDDataMddataXYServerXyserver项目内部,因为缩写的预期含义现在已经丢失,并且可能会在未来的协议缓冲区发布中发生变化。阻止Protobuffer重命名字段(类,成员,枚举项)

到目前为止,我在C#部分已经看到了这种行为,我不确定这是否也适用于C++的生成代码。

TL; DR:

有没有一种方法来禁用谷歌内部协议缓冲的原编译器自动代码风格的变化(并保持我自己的格式)领域的?

回答

0

有没有办法来执行这个短的写你自己的代码生成器。只有存根的公共API被认为是稳定的。

在底层,protoc编译器每次都从头开始重新生成代码,因此无法知道文件的原始样式。这需要在原始生成的文件中与原始文件一起传递,以便执行此操作。

也就是说,如果你想修改代码生成器,这当然是可能的。

+0

感谢您的回复。你能链接到什么被视为公共API的一部分的参考,什么不是?升级时,例如,枚举值的名称已更改。这是否被视为公共API的一部分? – vonludi