在 Ubuntu 上用 Golang 打包(编译)程序,一般视情况需要装以下内容:
如果只写纯 Go、不调用 C 库:
sudo apt update
sudo apt install golang-go
# 或
sudo apt install golang
验证:
go version
✅ 不需要额外装东西,直接:
go build
如果用到:
import "C"mattn/go-sqlite3)需要安装 C 编译工具链:
sudo apt install build-essential
包含:
验证:
gcc --version
一般不用装额外东西(Go 自带交叉编译):
# 给 Windows
GOOS=windows GOARCH=amd64 go build
# 给 macOS
GOOS=darwin GOARCH=arm64 go build
⚠️ 若使用 CGO + 交叉编译,则需要对应平台的交叉编译器(较复杂,一般不建议)。
如果你想生成 .deb:
sudo apt install dpkg-dev
或用工具:
go install github.com/deb-sig/dh-make-golang@latest
最干净方式:用官方镜像
FROM golang:1.22
WORKDIR /app
COPY . .
RUN go build
go: command not found → 没装 golangcannot find -lxxx → 缺系统库(如 libsqlite3-dev)CGO_ENABLED=1 报错 → 没装 build-essential如果你能说一下:
我可以给你一条精确命令。