问题:
Golang 编译出来的二进制文件有点大
解决方法:
- 编译时增加增加参数
#个人常用编译命令
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -gcflags=m -ldflags="-s -w -extldflags='static'" -o ouput.file input.go
#-ldflags="-s -w -extldflags='static'"
1.-s strip 去掉无用的符号
2.-w DWARF 去掉DWARF调试信息,得到的可执行程序不可用调试器调试
3.-H windowsgui 生成带GUI界面的程序时,可去掉dos黑框
以上为3个常用的参数,此外-ldflags '-extldflags "-static"' 为静态编译
如果,想更加清楚的看到编译过程可加-x 参数,如bulid -x ......
- UPX压缩
apt-get update && apt-get install -y upx-ucl/bionic
upx input.file
# 会压缩 50% - 70% 左右

本文介绍如何减小Golang编译出的二进制文件大小,包括使用特定编译参数去除无用符号和调试信息,以及通过UPX工具进行压缩的方法。

被折叠的 条评论
为什么被折叠?



