在 Ubuntu 下使用 Golang 打包(编译生成可执行文件)通常有几种常见场景,下面按最常见用法给你说明。
进入项目目录(有 go.mod 的目录):
cd your_project
go build
会生成一个和目录同名的可执行文件:
./your_project
指定输出文件名:
go build -o myapp
GOOS=linux GOARCH=amd64 go build -o myapp
GOOS=windows GOARCH=amd64 go build -o myapp.exe
GOOS=darwin GOARCH=amd64 go build -o myapp
go build -ldflags="-s -w" -o myapp
sudo apt install upx
upx --best myapp
通常能缩小 50%~70%
Go 默认就是静态编译,一般无需额外操作。
如果用到 CGO(如 SQLite),需要:
CGO_ENABLED=0 go build -o myapp
示例 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
如果你是指:
可以告诉我,我可以给你更具体的方案。