在 Debian 下编译(构建)Go 程序通常有两种情况:
1️⃣ 安装 Go 环境并编译自己的 Go 程序
2️⃣ 从源码编译 Go 工具链本身
下面分别说明。
sudo apt update
sudo apt install golang-go
查看版本:
go version
Debian 稳定版的 Go 版本可能较旧,如需新版本,建议用官方二进制包。
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
假设有 main.go:
go build main.go
生成可执行文件:
./main
或者指定输出名:
go build -o myapp main.go
go build -v # 显示编译过程
go build -race # 竞态检测
go build -ldflags "-s -w" # 去除调试信息,减小体积
交叉编译(例如在 Debian 上编译 Windows 程序):
GOOS=windows GOARCH=amd64 go build
适用于:
sudo apt install git gcc make
git clone https://go.googlesource.com/go
cd go
git checkout go1.22.5
cd src
./make.bash
编译完成后:
../bin/go version
go: command not found说明 PATH 没配置好:
export PATH=$PATH:/usr/local/go/bin
不要使用 root 编译项目,建议普通用户。
go env -w GOPROXY=https://goproxy.cn,direct
如果你是指 交叉编译 / 静态编译 / 编译 CGO 程序 / 编译 Docker 内 Go,可以告诉我具体场景,我可以给更针对性的方案。