温馨提示×

ubuntu下golang怎么打包

小樊
39
2026-09-22 14:38:42
栏目: 编程语言

在 Ubuntu 下使用 Golang 打包(编译生成可执行文件)通常有几种常见场景,下面按最常见用法给你说明。


一、最基础打包(本机可执行文件)

进入项目目录(有 go.mod 的目录):

cd your_project
go build

会生成一个和目录同名的可执行文件:

./your_project

指定输出文件名:

go build -o myapp

二、交叉编译(生成其他平台程序)

1️⃣ 编译 Linux 64 位(常见于服务器)

GOOS=linux GOARCH=amd64 go build -o myapp

2️⃣ 编译 Windows 程序(在 Ubuntu 上)

GOOS=windows GOARCH=amd64 go build -o myapp.exe

3️⃣ 编译 macOS

GOOS=darwin GOARCH=amd64 go build -o myapp

三、减小打包体积(推荐)

1️⃣ 去掉调试信息

go build -ldflags="-s -w" -o myapp

2️⃣ 再用 upx 压缩(可选)

sudo apt install upx
upx --best myapp

通常能缩小 50%~70%


四、打包成“单文件”(无外部依赖)

Go 默认就是静态编译,一般无需额外操作。

如果用到 CGO(如 SQLite),需要:

CGO_ENABLED=0 go build -o myapp

五、使用 Makefile(项目化)

示例 Makefile:

build:
	GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o myapp

运行:

make build

六、常见坑提醒

✅ Ubuntu 需安装 Go:

sudo apt install golang-go

✅ 查看 Go 环境:

go env

✅ 模块模式必须开启:

go env -w GO111MODULE=on

如果你是指:

  • 打包成 deb 安装包
  • Docker 镜像
  • 带前端资源的 Go 程序

可以告诉我,我可以给你更具体的方案。

0 踩