Go语言:解决编译后文件体积过大解决方案 upx压缩
优化方案 第一步:编译优化
使用一下指令进行编译:
go build -ldflags="-w -s" main.go
说明:会去除 DWARF调试信息、符号信息
-a 强制编译所有依赖包。
-s 去掉符号信息
-w 去掉DWARF调试信息,得到的程序就不能用gdb调试了
优化方案 第二步:加壳压缩
安装 UPX,并使用 最高级别的压缩
下载地址:https://github.com/upx/upx/releases
执行命令:
upx.exe -9 *.exe
优化方案 第三步:编程时注意
编程时候,能指针就指针
压缩对比示例
$ ls -lh -rwxr-xr-x 1 laojiacom 197121 60M Jan 24 13:30 cmdb-api -rwxr-xr-x 1 laojiacom 197121 48M Jan 24 13:33 cmdb-api-1 -rwxr-xr-x 1 laojiacom 197121 17M Jan 24 13:16 cmdb-api.upx
使用 -ldflags "-s -w" 注意事项
不生效
go build -ldflags "-s -w" -ldflags "-X '${VERSION_PATH}.GIT_BRANCH=${BUILD_BRANCH}'" main.go
正确位置: -ldflags "-s -w" 要紧挨着编译的文件
go build -ldflags "-X '${VERSION_PATH}.GIT_BRANCH=${BUILD_BRANCH}'" -ldflags "-s -w" main.go
0顶
0 踩
共 0 条评论