在 Ubuntu 下用 Go 打包(构建)失败,原因可能有很多种。下面我按常见原因 → 排查方法 → 解决方式给你一个系统性的总结,你可以对照看看是哪一种。
症状
go: command not found
cannot find package "xxx"
检查
go version
go env GOPATH
echo $PATH
解决
sudo apt install golang-go
# 或官方版本
wget https://go.dev/dl/go1.22.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz
~/.bashrc 或 ~/.zshrc 加:export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
症状
go: cannot find main module
go: missing go.sum entry
timeout / connection refused
检查
go env GO111MODULE
go env GOPROXY
解决
go env -w GO111MODULE=on
go env -w GOPROXY=https://proxy.golang.org,direct
# 国内可用
go env -w GOPROXY=https://goproxy.cn,direct
然后:
go mod init project_name
go mod tidy
症状
CGO_ENABLED=1 build failed
cannot find -lxxx
常见情况
CGO_ENABLED=1 GOOS=windows go build
解决
CGO_ENABLED=0 go build
sudo apt install gcc
# Windows
sudo apt install gcc-mingw-w64
症状
permission denied
解决
sudo chown -R $USER:$USER $GOPATH
不要用 root 跑 go build(容易乱权限)
症状
undefined reference to xxx
fatal error: xxx.h: No such file
解决
sudo apt install build-essential
sudo apt install libxxx-dev
GOARCH=arm64 go build
确保:
GOARM=7 # 如果需要
go clean -modcache
go mod tidy
go build -v
如果还失败,把完整报错贴出来
请贴出:
go version)go build / go build -o xxx)我可以一步到位告诉你怎么修 ✅