因为我从昨天开始学习Golang :)我对编译文件有疑问。
我们假设我编译了我的项目。它在/ bin文件夹中生成.exec文件。 现在我的问题是,由于该文件是在基于Intel的CPU的Mac上编译的,是否应该在其他操作系统和其他CPU架构(如AMD,ARM等)上编译,如果我想将其发布给公众?
我想这应该不是问题,因为我在服务器上运行它,因为我在后端使用GO语言。但是,如果我发布我的.exec文件会发生什么,让我们说在AWS上,有很多实例它们会根据负载自动增加/减少?有问题吗?
修改:
对于那些看起来如何交叉编译工具https://github.com/mitchellh/gox
,这是一个很好的解决方案答案 0 :(得分:1)
第一个问题的答案是肯定的。 Go的当前实现产生本机二进制文件,因此您可能需要一个不同的Linux x86(32位),Linux x64(64位)和Linux ARM。对于Mac OS X,您可能还需要一个不同的版本。您应该能够在64位系统上运行32位可执行文件,只要您依赖的任何库在该系统上以32位形式提供,因此您可以跳过制作64位可执行文件。
将来,可能还有其他Go的实现为虚拟机(例如JVM或.NET)编译,在这种情况下,您不需要为不同的体系结构编译多个版本。您的问题更多是关于现有的Go实现而不是语言本身。
我对AWS一无所知,但我建议您将其作为一个单独的问题。