go编译可以指定os和arch

是的,Go 编译器支持通过环境变量来指定目标操作系统(OS)和架构(Arch)。这允许你为不同的平台交叉编译 Go 程序。你可以使用 GOOSGOARCH 环境变量来指定目标系统。

例如,如果你想为 Linux 系统上的 ARM64 架构编译程序,你可以设置环境变量如下:

sh
GOOS=linux GOARCH=arm64 go build

这里是一些常见的 GOOSGOARCH 的值:

  • GOOS:

    • darwin - macOS
    • linux - Linux
    • windows - Windows
    • freebsd - FreeBSD
    • openbsd - OpenBSD
    • netbsd - NetBSD
    • dragonfly - DragonFly BSD
    • solaris - Solaris
    • android - Android
    • ios - iOS (需要使用 cgo)
  • GOARCH:

    • amd64 - x86-64
    • 386 - x86-32
    • arm - ARM 32位
    • arm64 - ARM 64位 (也称为 aarch64)
    • ppc64 - PowerPC 64位
    • ppc64le - PowerPC 64位 Little Endian
    • mips - MIPS 32位
    • mipsle - MIPS 32位 Little Endian
    • mips64 - MIPS 64位
    • mips64le - MIPS 64位 Little Endian
    • s390x - IBM Z 系列

你可以在编译命令前设置这些环境变量,或者在命令行中直接指定它们,如上面的例子所示。这使得 Go 成为一个非常强大的语言,适用于多种平台的软件开发。

posted @ 2024-12-09 22:35  牧之丨  阅读(365)  评论(0)    收藏  举报