在 Ubuntu 下使用 Golang 打包(编译生成可执行文件)通常分为基础打包、交叉编译、减小体积几种常见场景。下面一步步说明。
sudo apt update
sudo apt install golang-go
验证:
go version
假设你的项目结构:
myproject/
├── main.go
进入项目目录:
cd myproject
执行:
go build
会生成一个名为 myproject 的可执行文件(Windows 下是 .exe)。
指定输出文件名:
go build -o myapp
Ubuntu 默认可能启用 CGO,导致依赖系统库。
CGO_ENABLED=0 go build -o myapp
这样可以生成一个静态二进制文件,放到其他 Linux 上也能运行。
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_mac
go build -ldflags "-s -w" -o myapp
sudo apt install upx
upx myapp
如果项目有 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 板子),可以告诉我,我可以给你更针对性的方案。