我正在尝试在 OSX 上交叉编译一个 go 应用程序来为 windows 和 linux 构建二进制文件。我已经阅读了所有可以在网上找到的内容。我发现的最接近的示例已发布(除了许多关于 go-nuts 邮件列表的未完成讨论):
http://solovyov.net/en/2012/03/09/cross-compiling-go/
但它不适用于我的安装。我有去1.0.2。由于 1.0.2 是最近的版本,在我看来,上述所有示例均不适用于此版本。
尝试执行 ./make.bash --no-clean
并将 ENV vars 设置为 386/windows,它确实构建了 go,但是它为我的安装构建了 go,即 darwin/amd64
并完全忽略 ENV 中假设构建不同编译器的设置。
有人建议如何完成(如果可以的话)吗?
最佳答案
在 Go 1.5 中,他们似乎改进了交叉编译过程,这意味着它现在是内置的。不需要 ./make.bash
-ing 或 brew
-ing。过程描述here但对于外面的 TLDR-ers(像我一样):您只需设置 GOOS
和 GOARCH
环境变量并运行 go build。
对于更懒惰的复制粘贴者(像我一样),如果你在 *nix 系统上,做这样的事情:
env GOOS=linux GOARCH=arm go build -v github.com/path/to/your/app
您甚至学会了 env
技巧,它允许您仅为该命令设置环境变量,完全免费。
关于go - 在 OSX 上交叉编译 Go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55448815/