Go 项目打包不同平台和版本
· 阅读需 2 分钟
在 Windows 上打包 Windows 版本
go build -o xApp-windows.exe
在 macOS 上打包 macOS 版本
go build -o xApp-macos
在 Linux 上编译 x86 版本
GOARCH=amd64 go build -o xApp-linux-x86
在 Linux 上编译 ARM 版本
GOARCH=arm64 go build -o xApp-linux-arm
Windows 32 位
如果你需要支持 32 位的 Windows 系统,你可以使用 GOARCH=386
来编译 32 位版本的可执行文件。
SET GOARCH=386&& go build -o xApp-windows-32bit.exe
macOS ARM 架构(Apple Silicon)
对于采用 Apple Silicon(M1 芯片)的 macOS 设备,你可以使用 GOARCH=arm64
来编译适用于 ARM 架构的 macOS 可执行文件。
GOOS=darwin GOARCH=arm64 go build -o xApp-macos-arm
CGO 和交叉编译
如果你的 Go 项目使用了 CGO(调用 C 代码),交叉编译可能会更加复杂。你可能需要安装目标平台的 C 编译器和相关工具链。
在这种情况下,你可能需要使用 Docker 来设置适当的交叉编译环境。
外部依赖和静态链接
如果你的项目依赖于外部 C 库,你可能需要考虑静态链接这些库,以确保在目标系统上的可移植性。
你可以使用 -ldflags "-linkmode external -extldflags -static"
标志来实现静态链接。
go build -ldflags "-linkmode external -extldflags -static" -o xApp