Ubuntu 上 Go 编译失败的原因有很多种,下面按常见原因 → 现象 → 解决办法给你梳理一下,你可以对照看看是哪一种。
go: command not found
或
go version
# 报错或版本很低
不要用 apt 的旧版本(经常很老)
sudo rm -rf /usr/local/go
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
# ~/.bashrc 或 ~/.zshrc
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
source ~/.bashrc
go version
cannot find package "xxx"
go: go.mod file not found
新项目一定要用 module
go mod init projectname
go mod tidy
确认:
go env GOPATH
go env GO111MODULE
# 应该是 on
exec: "gcc": executable file not found
或
unknown architecture
sudo apt update
sudo apt install -y build-essential
GOOS=linux GOARCH=arm64 go build
permission denied
sudo chown -R $USER:$USER $HOME/go
proxy.golang.org timeout
go env -w GOPROXY=https://goproxy.cn,direct
你可以把完整报错贴出来,例如:
# command-line-arguments
./main.go:10:2: undefined: xxx
或者:
go: github.com/xxx@v1.2.3: reading https://...: 403
如果你愿意,直接把:
go versiongo build 的完整报错lsb_release -a)贴出来,我可以精准定位是哪一步失败。