在 Ubuntu 上用 Go 打包(编译)出错,原因很多,常见情况和对应解决办法如下。你可以先按**“看错误 → 对号入座 → 处理”**来做。
go version
echo $GOPATH
echo $GOROOT
建议:
go.mod如果没 go.mod:
go mod init your_module_name
cannot find package原因:没拉依赖或 GOPATH 不对
解决:
go mod tidy
go build
go: command not found原因:Go 没装或 PATH 没配
解决:
sudo apt install golang-go
# 或官方版
然后:
export PATH=$PATH:/usr/local/go/bin
例如:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
常见错误:
CGO_ENABLED=1 但没装 gcc解决:
sudo apt install gcc
# 或禁用 CGO
CGO_ENABLED=0 go build
permission denied例如写到 /usr/local/bin 没权限
解决:
sudo go build -o /usr/local/bin/xxx
或输出到当前目录:
go build -o app .
解决(临时):
go env -w GOPROXY=https://goproxy.cn,direct
Ubuntu 小内存机器容易 OOM
解决:
go build -p 1
CGO_ENABLED=0 go build -o app .
生产常用:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app
你可以贴出:
go version我可以直接告诉你具体是哪一步错了、怎么改。