我正在尝试在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一起使用,它确实可以编译,但是对于我的安装它可以编译,这darwin/amd64完全忽略了ENV中设置用来构建不同编译器的设置。
./make.bash --no-clean
darwin/amd64
有没有人建议如何做到(如果可以做到的话)?
使用Go 1.5,他们似乎改善了交叉编译过程,这意味着它已内置。不需要./make.bash-ing或brew-ing。这里描述了该过程,但是对于那里的TLDR-ers(像我一样):您只需设置GOOS和GOARCH环境变量并运行go build。
./make.bash
brew
GOOS
GOARCH
对于甚至更懒惰的复制粘贴器(例如我),如果您使用的是* nix系统,请执行以下操作:
env GOOS=linux GOARCH=arm go build -v github.com/path/to/your/app
您甚至学到了env技巧,它使您可以完全免费地为该命令设置环境变量。
env