c++ - 我可以在应用程序之间更改 .proto 文件的命名空间吗?

标签 c++ protocol-buffers

基本上,我有一个 .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/

相关文章:

c++ - 使用 Python 和 C++ 进行实时处理和回调

c++ - 如何正确使用和释放asn1c SEQUENCE_OF?

c++ - 如何断言给定的编译器选项设置为给定的值 VS2010?

json - Swift:解析 10k 行数据的最高效方法?

java - 池化 Protobuf POJO

c# - 将流转换为字节串

android - android ndk开发中使用的google::protobuf

c++ - 为什么 C++ 库和框架从不使用智能指针?

java - 在分析器中创建哪种格式的日志?

c++ - 具有引用数据成员的结构不是文字类型吗?