这个问题具体是关于在不同的操作系统平台上编译和使用golang协议缓冲区(使用gRPC),我还没有看到类似的东西。是否可以在Windows上编译.proto文件,然后在Linux上使用生成的文件?反之亦然?
我在Windows和Linux上编译了相同的.proto文件,diff显示了不同的结果。一个区别是Windows编译版本有时会在请求结构的字段中重复json:Field1Name *type`protobuf ,bytes,1,opt,name=my_name,json=myName" json:"my_name,omitempty"`
而Linux版本是:Field1Name *type`protobuf ,bytes,1,opt,name=my_name" json:"my_name,omitempty"`
。这种情况发生了很多,有时候所有字段都有这个问题,有时只有一些,有时候它们都没有给定的请求结构。
另一个区别是底部的fileDescriptor对于两个版本完全不同。 Windows版本长约40行。
答案 0 :(得分:1)
如果你使用相同版本的相同Go工具来编译proto,你应该得到相同的输出。我会仔细检查两者是否完全相同。