在 Ubuntu 上 Golang 编译失败,原因很多,一般可以按下面步骤排查和解决。
go version
如果提示 command not found,说明没装或没配置 PATH。
安装(以 22.04 为例):
sudo apt update
sudo apt install golang-go
或安装官方版本(推荐):
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
配置环境变量(~/.bashrc 或 ~/.zshrc):
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
生效:
source ~/.bashrc
cannot find package原因:依赖未下载或 GOPATH 配置错误。
解决:
go mod tidy
go build
如果使用 Go Modules(推荐):
go env -w GO111MODULE=on
go: command not found说明 PATH 没生效。
检查:
echo $PATH
which go
permission denied常见在 /usr/local/go 或写 GOPATH 时。
解决:
sudo chown -R $USER:$USER $HOME/go
go env -w GOPROXY=https://goproxy.cn,direct
关闭校验(谨慎):
go env -w GOSUMDB=off
如果你用到 C 库(如 sqlite):
sudo apt install build-essential
go env -w CGO_ENABLED=1
比如交叉编译:
GOOS=windows GOARCH=amd64 go build
go clean -modcache
go mod tidy
go build -v
go build -x
你可以直接把 完整的报错信息 发给我,例如:
# command-line-arguments
./main.go:10:2: undefined: xxx
我可以帮你精确分析是哪一类问题。
✅ 总结一句话:
先 go version → 再 go mod tidy → 看报错关键词 → 配 GOPROXY / CGO / PATH
如果你愿意,告诉我:
我可以一步步帮你修。