如何从 linux 交叉编译到 darwin 386?

问题描述

我正在尝试使用以下方法从 linux 编译:

GOOS=darwin GOARCH=386 CGO_ENABLED=0 go build .

但它抛出错误:

cmd/go: unsupported GOOS/GOARCH pair darwin/386

我到处找,但似乎应该支持 darwin/386
(编译 windows/386 和 linux/386 工作正常)
(编译 darwin/amd64 工作正常)

(我什至在 windows 上试过,但错误是一样的)

我错过了什么?

解决方法

来自Go 1.15 release notes

正如 Go 1.14 发行说明中所宣布的那样,Go 1.15 不再支持 macOS、iOS、iPadOS、watchOS 和 tvOS(darwin/386 和 darwin/arm 端口)上的 32 位二进制文​​件。 Go 继续支持 64 位 darwin/amd64 和 darwin/arm64 端口。

如果需要,您可以使用 Go 1.14 编译为 darwin/386。最新的 OSX 版本不再运行任何 32 位程序(来自 Catalina)。这就是他们放弃支持的原因:Go 1.14 release notes 宣布了这一点。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...