温馨提示×

ubuntu golang打包错咋办

小樊
37
2026-10-10 06:08:59
栏目: 编程语言

在 Ubuntu 上用 Golang 打包(编译)出错,原因有很多种。下面按常见错误类型 + 解决办法给你梳理一下,基本能覆盖 90% 的情况。


一、最基础:确认环境和命令

先确认:

go version
echo $GOPATH
echo $GO111MODULE

推荐现代做法(Go 1.16+):

go mod init project
go build

二、常见错误 & 解决办法

1️⃣ command not found: go

原因:Go 没装或没加到 PATH

解决:

sudo apt install golang-go
# 或官方版本

然后:

export PATH=$PATH:/usr/local/go/bin

2️⃣ cannot find package

原因:

  • 没用 go mod
  • 依赖没下载

解决:

go mod tidy
go build

3️⃣ missing go.sum entry

missing go.sum entry for module

解决:

go mod download
go mod tidy

4️⃣ CGO 编译错误(非常常见 ⚠️)

典型报错:

gcc: not found
C compiler cannot create executables

原因:用了 CGO(如 sqlite、crypto)

解决(Ubuntu):

sudo apt update
sudo apt install gcc

如果不需要 CGO:

CGO_ENABLED=0 go build

5️⃣ 交叉编译失败(如打包成 Linux / Windows)

✅ 正确方式:

# Linux
GOOS=linux GOARCH=amd64 go build

# Windows
GOOS=windows GOARCH=amd64 go build

# ARM
GOOS=linux GOARCH=arm64 go build

⚠️ 如果用了 CGO,交叉编译会非常麻烦,建议:

CGO_ENABLED=0 go build

6️⃣ permission denied

go build
-bash: ./app: Permission denied

解决:

chmod +x app

或输出到指定目录:

go build -o /tmp/app

7️⃣ 端口 / 运行时错误(不是打包错)

如果是运行后才报错:

  • 端口被占
  • 配置文件缺失

这属于运行问题,不是 build 问题。


三、推荐的标准打包命令(Ubuntu)

CGO_ENABLED=0 GOOS=linux go build -o app main.go

四、你可以这样给我信息,我直接帮你定位

请把完整报错信息贴出来,或者告诉我:

  1. Ubuntu 版本
  2. Go 版本(go version)
  3. 用的命令
  4. 完整报错截图或文本

我可以一步到位告诉你怎么修 ✅

0 踩