You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows系统上编译适用于MacOS的Go程序?

Windows 环境下交叉编译 Go 程序到 macOS 平台实操步骤

前置准备

  • 确保 Windows 设备已安装 1.16 及以上版本的 Go 环境,可通过执行 go version 验证安装结果
  • 若编译的程序涉及 CGO 调用,需要提前安装对应 macOS 架构的交叉编译工具链,纯 Go 代码编译不需要额外依赖

编译纯 Go 代码(无 CGO 依赖,最常用场景)

直接设置环境变量后执行编译命令即可,分 Intel x86_64 架构和 Apple Silicon arm64 架构两种场景:

编译为 macOS Intel 架构(x86_64)适用的可执行文件

PowerShell 执行命令:

$env:CGO_ENABLED=0
$env:GOOS=darwin
$env:GOARCH=amd64
go build -o your-program-amd64 .

CMD 执行命令:

set CGO_ENABLED=0
set GOOS=darwin
set GOARCH=amd64
go build -o your-program-amd64 .

编译为 macOS Apple Silicon 架构(arm64)适用的可执行文件

PowerShell 执行命令:

$env:CGO_ENABLED=0
$env:GOOS=darwin
$env:GOARCH=arm64
go build -o your-program-arm64 .

CMD 执行命令:

set CGO_ENABLED=0
set GOOS=darwin
set GOARCH=arm64
go build -o your-program-arm64 .

编译通用二进制文件(同时支持两种架构)

可以分别编译两个架构的二进制文件后,在 macOS 设备上用 lipo 命令合并为通用二进制,Windows 环境下无原生工具支持直接生成通用二进制。

带 CGO 依赖的编译场景

如果代码用到了 CGO,需要提前安装对应目标架构的 macOS 交叉编译工具链,完成工具链配置后执行以下命令(以 amd64 架构为例):

$env:CGO_ENABLED=1
$env:GOOS=darwin
$env:GOARCH=amd64
$env:CC="x86_64-apple-darwin20.4-clang"
go build -o your-program-amd64 .

注意:CC 变量的值需要替换为你实际安装的交叉编译 clang 路径

编译后验证

将生成的二进制文件传到 macOS 设备后,执行以下命令添加可执行权限即可运行:

chmod +x your-program-amd64
./your-program-amd64

如果运行时出现「无法验证开发者」的提示,可在 macOS 的「系统设置-隐私与安全性」中选择允许该程序运行,或者执行 xattr -d com.apple.quarantine your-program-amd64 命令清除隔离属性。

内容的提问来源于stack exchange,提问作者zen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:09:04