在 Ubuntu 上给 Golang 编译出的二进制文件瘦身,常用且有效的手段如下,按「收益从大到小」整理:
go build -ldflags "-s -w" main.go
说明:
-s:去掉符号表-w:去掉 DWARF 调试信息一般可减小 20%~30%
sudo apt install upx
upx --best --lzma your_binary
效果:
⚠️ 注意:
CGO_ENABLED=0 go build -ldflags "-s -w" main.go
好处:
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" main.go
避免包含不必要的内容。
go mod tidy 清理无用依赖go mod tidy
go install mvdan.cc/garble@latest
garble build -ldflags "-s -w" main.go
sudo apt install tinygo
tinygo build -o main main.go
⚠️ 限制:
CGO_ENABLED=0 go build -ldflags "-s -w" -o app main.go
upx --best --lzma app
| 方式 | 大小 |
|---|---|
| 默认 | 12 MB |
| -s -w | 9 MB |
| + upx | 3 MB |
如果你愿意,可以告诉我:
我可以给你最优瘦身方案。