“Linux 下 Golang 编译失败”原因非常多,不能只看一句话结论,需要结合具体报错信息来判断。下面我先给你最常见的几类原因 + 排查方法,你对照看看是哪一类;如果还不行,把完整报错贴出来我可以精确定位。
现象
cannot find package "xxx"
go: cannot find main module
原因
解决
# 在项目根目录
go mod init your_project
go mod tidy
go build
✅ 检查:
go env GOPATH
go env GO111MODULE
现象
exec: "gcc": executable file not found
undefined reference to `XXX`
原因
解决
# 安装 gcc
sudo apt install gcc
# 或禁用 CGO
CGO_ENABLED=0 go build
现象
permission denied
原因
解决
chmod +x your_binary
# 或不要 build 到 /usr/bin
go build -o ./app
现象
package xxx is not in std
原因
✅ 正确结构示例:
project/
├── go.mod
├── main.go
└── pkg/
└── util.go
现象
go: go.mod requires go >= 1.21
解决
go version
# 升级 Go
sudo rm -rf /usr/local/go
# 重新安装新版本
现象
cannot find -lxxx
解决
sudo apt install libxxx-dev
请确认:
go versiongo mod init你可以直接把以下信息发我:
go versiongo build 命令我可以逐行帮你分析为什么失败。