2

我正在尝试将项目从 Google Protocol Buffers 3.0.0-beta-2 移植到 3.1.0。重新编译我的.proto文件后,我注意到由于 protoc 强制执行我没有选择的编码标准并相应地重命名字段,我的项目出现了许多编译错误。我不想在项目内部重命名例如MDDatatoMddataXYServerto Xyserver,因为缩写的预期含义现在已经丢失,并且可能会在未来的协议缓冲区版本中发生变化。

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

TL;博士:

有没有办法在 Google Protocol Buffer 的 Proto Compiler 中禁用自动代码样式更改(并保留我自己的格式)?

4

1 回答 1

0

除了编写自己的代码生成器之外,没有办法强制执行此操作。只有存根的公共 API 被认为是稳定的。

在后台,protoc 编译器每次都从头开始重新生成代码,因此它无法知道文件的原始样式。为了做到这一点,它需要与原始生成的文件一起传递。

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

于 2017-06-06T18:28:36.067 回答