温馨提示×

ubuntu下怎么用golang打包

小樊
36
2026-10-01 10:30:13
栏目: 编程语言

在 Ubuntu 下使用 Golang 打包(编译生成可执行文件)通常分为基础打包、交叉编译、减小体积几种常见场景。下面一步步说明。


一、基础环境准备

1. 安装 Go(Ubuntu)

sudo apt update
sudo apt install golang-go

验证:

go version

二、最基础的打包方式

假设你的项目结构:

myproject/
├── main.go

进入项目目录:

cd myproject

执行:

go build

会生成一个名为 myproject 的可执行文件(Windows 下是 .exe)。

指定输出文件名:

go build -o myapp

三、禁用 CGO(推荐用于服务器部署)

Ubuntu 默认可能启用 CGO,导致依赖系统库。

CGO_ENABLED=0 go build -o myapp

这样可以生成一个静态二进制文件,放到其他 Linux 上也能运行。


四、交叉编译(在 Ubuntu 上打包其他平台)

1. 编译 Linux 64 位

GOOS=linux GOARCH=amd64 go build -o myapp

2. 编译 Windows

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

3. 编译 macOS

GOOS=darwin GOARCH=amd64 go build -o myapp_mac

五、减小可执行文件体积

1. 加编译参数

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

2. 使用 upx 压缩(可选)

sudo apt install upx
upx myapp

六、使用 Go Modules 的项目

如果项目有 go.mod:

go mod tidy
go build

七、常见示例(完整)

cd ~/go/src/myproject
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -ldflags "-s -w" -o myapp

八、运行打包后的程序

chmod +x myapp
./myapp

如果你有具体需求(比如:Docker 打包、systemd 部署、GUI 程序、ARM 板子),可以告诉我,我可以给你更针对性的方案。

0 踩