温馨提示×

debian如何配置golang交叉编译

小樊
51
2026-10-11 03:50:41
栏目: 编程语言

在 Debian 上配置 Golang 交叉编译(为其他平台/架构编译二进制),核心思路是:
安装 Go → 设置环境变量 → 使用 GOOS / GOARCH 编译

下面按常见场景一步步说明。


一、安装 Go(Debian)

方式 1:APT(版本可能较旧)

sudo apt update
sudo apt install golang-go

查看版本:

go version

方式 2:官方二进制(推荐)

wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz

加入 PATH(写入 ~/.bashrc 或 ~/.profile):

export PATH=$PATH:/usr/local/go/bin

二、查看支持的平台

go tool dist list

示例输出:

linux/amd64
linux/arm64
linux/arm
windows/amd64
darwin/arm64

三、基本交叉编译命令

编译为 Linux ARM64

GOOS=linux GOARCH=arm64 go build -o app-arm64

编译为 Windows

GOOS=windows GOARCH=amd64 go build -o app.exe

编译为 macOS(Intel)

GOOS=darwin GOARCH=amd64 go build -o app-mac

编译为 macOS(Apple Silicon)

GOOS=darwin GOARCH=arm64 go build -o app-mac-arm

四、常见组合速查表

目标系统 GOOS GOARCH
Linux x86_64 linux amd64
Linux ARM linux arm
Linux ARM64 linux arm64
Windows windows amd64
macOS Intel darwin amd64
macOS M1/M2 darwin arm64

五、CGO 的交叉编译(重要)

如果项目 不使用 CGO(推荐)

CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build

如果 必须使用 CGO

需要对应平台的 交叉编译工具链,例如:

编译 Linux ARM64

sudo apt install gcc-aarch64-linux-gnu
CGO_ENABLED=1 \
GOOS=linux GOARCH=arm64 \
CC=aarch64-linux-gnu-gcc \
go build

六、一次性编译多个平台(脚本示例)

#!/bin/bash
for target in linux/amd64 linux/arm64 windows/amd64 darwin/arm64; do
  GOOS=${target%/*}
  GOARCH=${target#*/}
  echo "Building $GOOS/$GOARCH"
  GOOS=$GOOS GOARCH=$GOARCH go build -o bin/app-$GOOS-$GOARCH
done

七、常见问题

1. command not found: go

检查 PATH 是否生效:

which go

2. missing C compiler

说明开启了 CGO,安装对应 gcc 或设置:

CGO_ENABLED=0

3. Debian 上交叉编译 Raspberry Pi

GOOS=linux GOARCH=arm GO_VERSION=7 go build

如果你有 具体目标平台(如树莓派、安卓、MIPS、RISC-V),可以告诉我,我可以给你更精确的配置。

0 踩