写好go程序代码,编译之后就得到一个可执行程序。直接编译的结果是一个系统默认图标的样式。而且,文件属性里查看版权信息、版本信息、公司信息都是空的。
获得一个ico图标
如果你有喜欢的图标,直接就是ico格式的。那么就省掉当前这步了。如果你只是找到一张你喜欢的图片,而它还是普通图片格式。那么,你可以在网上找图片转成ico的网站去转换一下。
当然,这样处理,有时候拿到的结果是不够精致。
如果你会ps软件的话,把图片大小调整为 256 * 256的大小,选择“另存”图片,另存的图片类型中,就有 ico 选项了。当然,如果你的ps版本不包含这样的功能,你就需要找其他办法去解决了。
你需要MinGW
为了生成一个中间文件 ***.syso,我们需要使用MinGW。这个可以免费获得,你访问http://mingw.org/,找到下载页面,
打开它,选择要安装的组件,
安装好之后的样子
要记住你选择安装的位置,我的安装在了C盘根路径上。
试着在命令行窗口分别敲命令
gcc -v
g++ -v
来测试是否安装成功了MinGW
一个rc文件
下面你需要制作一个后缀为.rc的文件。是的这是C、c++里的范畴,gcc不就是c++的编译器吗?所以这没什么奇怪的。我采用了vs code,建立一个demo.rc文件。写入下面的内容
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEOS 0x40004
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
BLOCK "040904B0"
{
VALUE "CompanyName", "ShanXiXiYueManCangKeJiYouXianGongSi"
VALUE "FileDescription", "Cofox Hold Amazon Best Sellers Top100"
VALUE "FileVersion", "1.0.0.0"
VALUE "InternalName", "CofoxHoldAmazonTop100"
VALUE "LegalCopyright", "Copyright (C)2019 Www.Cofox.Com. All rights reserved."
VALUE "OriginalFilename", "CofoxAmazonBestSellersHold.exe"
VALUE "ProductName", "CofoxHoldAmazonTop100"
VALUE "ProductVersion", "1.0.0.0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0X0409, 0X04B0
}
}
IDI_ICON1 ICON "cofox.ico"
这里面的代码的意思,你可以在这个网址查阅https://docs.microsoft.com/zh-cn/windows/win32/menurc/stringfileinfo-block?redirectedfrom=MSDN这里面包含了公司名称、版本信息、版权信息、程序名称等等。还有图标名称。
然后,请把这个demo.rc文件和cofox.ico文件放在一个路径下,以方便生成demo.syso。
使用下面的命令生成.syso文件
windres -o demo.syso demo.rc
最后一步
把刚刚生成的demo.syso文件与要编译的.go文件放在同一个路径,然后就可以go build生成最终的可执行文件了。如果你不是直接使用go命令来build,而是使用vs code、goland、sublime text、LiteIDE等等,也一样要把demo.syso文件放到和.go文件的同一路径下,然后执行build操作。
【注】编译无命令行窗口的应用,请用如下命令
go build -ldflags "-H windowsgui" main.go