我正在尝试将项目从Google Protocol Buffers 3.0.0-beta-2移植到3.1.0。重新编译我的.proto
文件后,我注意到由于protoc强制执行我没有选择的编码标准并相应地重命名字段,因此项目中出现了许多编译错误。我不想重命名,例如项目内MDData
到Mddata
或XYServer
到Xyserver
,因为缩写的预期含义现在已丢失,可能会在未来的协议缓冲版版本中发生变化。
到目前为止,我在C#部分已经看到过这种行为,并且不确定生成的C ++代码是否也是如此。
TL; DR:
有没有办法在Google协议缓冲区的Proto编译器(并保留我自己的格式)字段中禁用自动代码样式更改?
答案 0 :(得分:0)
没有办法强制编写自己的代码生成器。只有存根的公共API被认为是稳定的。
引擎盖下,protoc编译器每次都从头开始重新生成代码,因此无法知道文件的原始样式。它需要与原始生成的文件一起传递,以便执行此操作。
也就是说,如果你想修改代码生成器,那肯定是可能的。