在 Ubuntu 上编译 Go (Golang) 程序报错,原因可能有很多种。下面我按常见原因 + 排查方法给你总结一下,你可以对照看是哪一种。
报错示例
go: command not found
解决
go version
如果没有版本号:
sudo apt update
sudo apt install golang-go
# 或官方版本
sudo snap install go --classic
确认环境变量:
echo $GOPATH
echo $GOROOT
报错示例
go: cannot find main module
go: go.mod file not found
解决
go mod init your_module_name
go build
报错示例
cannot find package "xxx"
go: module download: Get https://...: net/http: TLS handshake timeout
解决
go env -w GOPROXY=https://goproxy.cn,direct
go mod tidy
报错示例
exec: "gcc": executable file not found
C compiler cannot create executables
解决
sudo apt install build-essential
报错示例
invalid GOOS/GOARCH combination
解决
go env GOOS GOARCH
例如:
GOOS=linux GOARCH=amd64 go build
报错示例
permission denied
解决
sudo chmod -R 755 your_project
你可以把 完整报错信息 贴出来,最好包括:
lsb_release -a
go version
go build xxx
Ubuntu 上 Go 编译失败,90% 是环境、module、CGO、网络代理问题。
如果你愿意,直接把报错贴出来,我可以一行一行帮你分析 ✅