go - 在 OSX 上交叉编译 Go?

标签 go compilation cross-compiling

我正在尝试在 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(像我一样):您只需设置 GOOSGOARCH 环境变量并运行 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/

相关文章:

go - Beego Admin 任务页面打不开

json - 如何创建自定义 json 结构(ansible inventory)

go - 从用户输入获取字符串长度

windows - 是否有在 eclipse + mingw 中编译 node.js 的方法?

scala - 使用 Build.scala 进行交叉编译时,如何为每个 Scala 版本设置不同的 scalacOptions?

go - nohup 返回到 golang 中的程序

ios - Xcode 9.2 陷入编译 Swift 3.2 项目的困境

visual-studio-2010 - 将 FreeType 编译为 DLL(相对于静态库)

windows - 在 Windows 主机上使用 Eclipse 开发嵌入式 Linux

为 Mips 架构编译 C