可以的,Debian 完全可以交叉编译 Go(Golang)程序,而且 Go 本身就对交叉编译支持得非常好,不需要额外安装交叉编译工具链(不像 C/C++ 那样麻烦)。
下面给你系统说明一下。
Go 的交叉编译特点:
GOOS:目标操作系统GOARCH:目标架构golang-go 或 golang 包即可sudo apt update
sudo apt install golang-go
查看版本:
go version
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
配置环境变量:
export PATH=$PATH:/usr/local/go/bin
GOOS=linux GOARCH=arm64 go build -o app-arm64
GOOS=windows GOARCH=amd64 go build -o app.exe
GOOS=darwin GOARCH=amd64 go build -o app-mac
GOOS=linux GOARCH=arm GOARM=7 go build -o app-rpi
| 目标系统 | GOOS | GOARCH |
|---|---|---|
| Linux x86_64 | linux | amd64 |
| Linux ARM64 | linux | arm64 |
| Linux ARMv7 | linux | arm |
| Windows | windows | amd64 |
| macOS Intel | darwin | amd64 |
| macOS Apple | darwin | arm64 |
查看支持列表:
go tool dist list
如果代码里有:
import "C"
那就不行(默认):
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build
如果你想启用 CGO 交叉编译:
sudo apt install gcc-aarch64-linux-gnu
CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc \
GOOS=linux GOARCH=arm64 go build
Debian 不仅能交叉编译 Golang,而且是最推荐的环境之一,开箱即用、稳定、官方支持好。
如果你有具体目标平台(比如树莓派 / 飞腾 / 龙芯 / Windows),我可以给你精确命令。