基本上,我有一个 .proto
定义,它将包声明为 main
。
package main;
此文件正被两个程序使用。我正在重写其中一个。当我为此定义生成 c++ 文件时,生成的命名空间是 main
。这会导致与 main
函数发生冲突。现在我只是用这个包装生成文件的标题和源代码:
#define main protocol
//Generated code
#undef main
我想知道重命名 .proto
文件中的包是否安全,如果我这样做,生成的 Protocol Buffer 消息是否兼容。
有点像
package xxx;
//Same definitions
最佳答案
是的,就使用二进制协议(protocol)的数据而言,这将是 100% 兼容的 - 二进制 DAT 排除所有名称,仅包括标签号。
如果您使用的是 JSON 协议(protocol),一些名称很重要 - 特别是成员名称。
关于c++ - 我可以在应用程序之间更改 .proto 文件的命名空间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43906989/