回答

收藏

在 OSX 上交叉编译?

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

我在尝试 OSX 上交叉编译一个 go 应用程序为 windows 和 linux 构建二进制文件。我已经阅读了我在网上能找到的所有内容。go-nuts 邮件列表中许多未完成的讨论):
0 I' _4 w0 e) _! M9 o. Jhttp://solovyov.net/en/2012/03/09/cross-compiling-go/9 A1 d0 F0 [0 R2 ~* J6 S& |
但它不适合我的安装。我去了 1.0.2。由于 1.0.在我看来,上面所有的例子都不适用于这个版本。
8 U* h: a  w' p4 m; s  A* m9 ^8 y试图将./make.bash --no-cleanENV 变量设置为 386/windows,它确实构建了 go,但它为我的安装构建了 go,这darwin/amd完全忽略了 ENV 假设构建不同编译器的内容。. t. }# i( _2 @" b3 w) I
如何完成任何建议(如果可以)?' u( Q2 u: q- I. G) c- u
                                                               
# x" Q5 @5 _: s+ Y    解决方案:                                                                ) ~4 g9 n( Y6 [) Q. p
                                                                在 Go 1.在5 中,它们似乎改进了交叉编译过程,这意味着它现在是内置的。./make.bash-ing 或brew-ing。这里描述了这个过程,但对 TLDR对于 人员(如我),您只需设置GOOS和GOARCH并运行 环境变量go build。) }0 C" I( G7 D. A% \& X4 c
对于那些比较懒的复制粘贴者(像我一样),如果你用 *nix 系统,请执行以下操作:
4 z7 f# a. a0 j( y0 W: Q. F
    env GOOS=linux GOARCH=arm go build -v github.com/path/to/your/app
    : M& @  `. l. a2 X& ~5 \" C5 ?. [/ j
你甚至学会了env技巧,它让你只为命令设置环境变量,完全免费。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则