使用gRPC的golang协议缓冲区可以交叉编译并在不同的OS平台上使用吗?

时间:2017-08-10 15:51:29

标签: go protocol-buffers grpc

这个问题具体是关于在不同的操作系统平台上编译和使用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行。

1 个答案:

答案 0 :(得分:1)

如果你使用相同版本的相同Go工具来编译proto,你应该得到相同的输出。我会仔细检查两者是否完全相同。