解决:打包的文件像病毒

分享一个真实的场景:

同学用 go 开发项目后,打包成 exe 交给客户后,客户反馈,你的二进制包像病毒。

默认的二进制图标真的好丑好丑,于是客户要求给换一个好看的图标,于是记录下:

网上一查,还挺多能实现这需求的库,于是我选择了 https://github.com/akavel/rsrc 这个库,因为我觉得他简单。

一、安装

这里有个坑,大部分文档都告诉你,使用命令:

代码语言:javascript
复制
go get github.com/akavel/rsrc

然后后面的命令你就无法找到 rsrc 命令,因为新版的 go get 不会给你在 path 生成 exe 文件。

所以得换 install 命令:

代码语言:javascript
复制
go install github.com/akavel/rsrc

二、准备 ico 图标

别问为啥是 ico 图标,而不是 png 之类的,问就是固定搭配。

如果你只有 png 图片,可以自行网上找下,有不少在线 png 图片转 ico 的网站,我这里推荐一个吧:https://cloudconvert.com/png-to-ico

为什么是 png 格式图片,因为他能支持底部透明。

一个注意点,你的 ico 文件不要搞太大,最大 256,再大就不能显示了。

三、生成 syso 文件

使用刚才的 rsrc 工具将 ico 文件转换成 syso 文件,命令如下:

代码语言:javascript
复制
rsrc -ico main.ico -o main.syso

解析下这行命令:-ico 是指定你的 ico 文件,-o 是输出路径。

这一步,要在项目 main 入口文件的地方执行。

四、正常打包即可

现在你只要正常打包即可,你的 exe 文件,就不再那么黑布隆冬了。