【发布时间】:2016-02-25 15:38:49
【问题描述】:
假设我主要是 Linux 用户,但我正在用 Go 开发一个我想成为跨平台的应用程序。我已经四处搜索,但似乎找不到可以解决以下问题的信息:
- 如果我在我的 amd64 Ubuntu 系统上
go install一个二进制文件,它是否也适用于其他人的 64 位 Ubuntu/Debian 系统? - 如何使用
go install构建一个 x86_64 二进制文件,该二进制文件也可以在 32 位 Debianlikes 上开箱即用地运行? - 如果我必须使用 Windows 来制作可以在 Windows 上运行的二进制文件,我如何才能确保即使我的 Windows 系统是 64 位,也可以为 x86_64 构建可执行文件?
我的问题实际上归结为“go 的链接器/编译器的静态/可移植性如何?”
【问题讨论】:
-
我不确定你在问什么。二进制文件可在具有相同操作系统和架构的系统之间移植。除非您另有说明,否则 Go 会为您的主机 GOOS 和 GOARCH 构建二进制文件。您不能将 64 位二进制文件在 32 位系统上运行。
-
这不是我创建跨平台二进制文件的经验。
-
回答您的问题:“一点也不。”很简单,因为这是不可能的。没有编译器/链接器/加载器/工具链可以做到这一点。谷歌交叉编译,这对 Go 来说是微不足道的。
-
如果这不是您的经验,那么您需要向我们展示您遇到的问题。问题“go 的链接器/编译器的静态/可移植性如何?”没有多大意义。
-
离题。这个工具让你的生活更轻松github.com/mitchellh/gox
标签: go cross-platform binaryfiles computer-architecture