Golang二进制文件瘦身

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

问题:

Golang 编译出来的二进制文件有点大

解决方法:

  1. 编译时增加增加参数
#个人常用编译命令
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 ......

  1. UPX压缩
apt-get update && apt-get install  -y upx-ucl/bionic

upx input.file 
# 会压缩 50% - 70% 左右
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值