golang编译更小体积的可执行应用程序

前言

golang默认编译出来的可执行文件,一般都很大。我们有没有办法编译出体积小一些的可执行文件呢?本文带领大家学习一下利用golang编译参数和upx来压缩编译出的可执行文件的尺寸,大概可以缩小25%-75%之间


 

golang编译参数调整

我们可以给golang编译时增减ld参数,参数为-s 和 -w

示例

```golang

go build -ldflags="-s -w" main.go

-s

Omit the symbol table and debug information.

-w

Omit the DWARF symbol table.

参考:https://golang.org/cmd/link/

消减这两个参数,不会影响程序最终运行。但是可以大大减小尺寸。

UPX压缩

upx是一个二进制压缩工具,可以进一步帮助我们压缩编译出来的二进制尺寸。

可以从这个项目的github下载最新的upx

https://github.com/upx/upx

下载回来,可以执行 upx命令,压缩你的目标程序(例如:我的应用为gosense.exe)

upx gosense.exe

总结

你可以对比一下压缩前,压缩后的文件大小。我本地压缩效果,大概可以压缩50%左右。非常给力。

分类: 编程语言 标签: Golang 优化 编译 发布于: 2020-12-26 16:43:20, 点击数: