回答

收藏

在 OSX 上交叉编译?

技术问答 技术问答 238 人阅读 | 0 人回复 | 2023-09-12

我在尝试 OSX 上交叉编译一个 go 应用程序为 windows 和 linux 构建二进制文件。我已经阅读了我在网上能找到的所有内容。go-nuts 邮件列表中许多未完成的讨论):
# i2 w  |9 q8 F  ghttp://solovyov.net/en/2012/03/09/cross-compiling-go/
/ M  f5 ^5 A! n5 }4 h+ L( K但它不适合我的安装。我去了 1.0.2。由于 1.0.在我看来,上面所有的例子都不适用于这个版本。7 \* w7 u7 _: j: w6 K
试图将./make.bash --no-cleanENV 变量设置为 386/windows,它确实构建了 go,但它为我的安装构建了 go,这darwin/amd完全忽略了 ENV 假设构建不同编译器的内容。; b( j8 s9 s: q! z* Z" D, w
如何完成任何建议(如果可以)?+ b. j' k0 J! h8 {
                                                                ! T) J  d4 i2 p; C& ]& a$ A
    解决方案:                                                               
* M! b! _; L+ o+ l  s                                                                在 Go 1.在5 中,它们似乎改进了交叉编译过程,这意味着它现在是内置的。./make.bash-ing 或brew-ing。这里描述了这个过程,但对 TLDR对于 人员(如我),您只需设置GOOS和GOARCH并运行 环境变量go build。+ F/ S7 L' I8 Q
对于那些比较懒的复制粘贴者(像我一样),如果你用 *nix 系统,请执行以下操作:
( C5 B, f' `+ Q" ?. o* f
    env GOOS=linux GOARCH=arm go build -v github.com/path/to/your/app
    2 L( u4 V7 E3 t7 |- W+ G4 |0 W3 P
你甚至学会了env技巧,它让你只为命令设置环境变量,完全免费。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则