我可以在应用程序之间更改 .proto 文件的命名空间吗?
Can I change the namespace of a .proto file between applications?
基本上,我有一个.proto
定义,将包声明为main
。
package main;
此文件正由两个程序使用。我正在重写其中之一。当我为此定义生成 c++ 文件时,生成的命名空间main
。这会导致与main
函数冲突。现在我只是用这个包装生成的文件的标题和源:
#define main protocol
//Generated code
#undef main
我想知道重命名.proto
文件中的包是否安全,如果这样做,生成的协议缓冲区消息是否兼容。
类似的东西
package xxx;
//Same definitions
是的,在使用二进制协议的数据方面,这将是 100% 兼容的 - 二进制 DAT 排除所有名称,仅包含标签号。
如果您使用的是 JSON 协议,则某些名称很重要 - 尤其是成员名称。
相关文章:
- 命名空间中具有.h和.cpp文件的类
- 使用 Clang++ 有没有办法将文件作为命名空间等包含?
- Qt C++:不同文件中同一命名空间的多个Q_NAMESPACE
- 不同C++文件中未命名命名空间中的名称可以引用同一个命名事物吗?
- 使用命名空间在另一个".cpp"文件中定义
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- 是否将命名空间范围文件本地 (.cpp) 常量放在匿名命名空间中
- 模板实现文件中的匿名命名空间
- C++-使用来自不同头文件、相同命名空间的枚举
- C++ 如何在 def 文件中指定命名空间
- 在实现文件中,我们应该更喜欢"using namespace"指令还是将实现包装在命名空间 { } 中?
- 在头文件中添加命名空间函数
- 在多个 cpp 文件中重用未命名的命名空间函数
- 使用匿名命名空间中的函数或另一个文件中的静态函数不应该出错吗?
- 跨命名空间的友元类和不同的.H 文件
- 我可以在应用程序之间更改 .proto 文件的命名空间吗?
- 试图将两个类放在同一命名空间中的单独文件中,但只有#1个#Class类作品
- C++中的头文件和命名空间
- 为什么主可执行文件和 dlopen 加载的共享库共享命名空间静态变量的一个副本?
- 包含所有命名空间 std 的文件