如何在golang中设置应用程序图标?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在golang中设置应用程序图标?相关的知识,希望对你有一定的参考价值。
我刚刚在Windows上创建了我的第一个应用程序。
我该如何给它一个图标?
似乎没有任何构建标志来执行此操作,我知道golang不支持资源。
您可以使用像akavel/rsrc这样的工具来生成包含在.rsrc
部分中的指定资源的.syso文件,目的是在构建Win32 excecutables时由Go链接器使用。
请参阅lxn/walk应用程序示例,该应用程序将其他元数据嵌入其可执行文件中。
rsrc [-manifest FILE.exe.manifest] [-ico FILE.ico[,FILE2.ico...]] -o FILE.syso
-ico=""
:逗号分隔的.ico文件嵌入路径列表
这不同于将二进制数据嵌入到go程序中。 为此,请使用jteeuwen/go-bindata。
要访问资产数据,我们使用生成的输出中包含的
Asset(string) []byte
函数。
data := Asset("pub/style/foo.css")
if len(data) == 0 {
// Asset was not found.
}
// use asset data
话题很长,实际上mingw
只是要求,我们不需要第三方依赖。此外,资源文件*.rc
对于win32可执行应用程序是必需的。最后,您可以在rc-demo找到该演示
1)使用Chocolatey:choco install mingw
安装mingw
2)创建main.exe.manifest
文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="controls"
type="win32"
/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
3)创建main.rc
文件
100 ICON "main.ico"
100 24 "main.exe.manifest"
101 RCDATA "content.zip"
4)建立
在git-bash窗口中执行以下命令:windres -o main-res.syso main.rc && go build -i
Joseph Spurrier有一个github包GoVersionInfo:
Go语言的Microsoft Windows文件属性/版本信息和图标资源生成器
包创建一个syso文件,其中包含Microsoft Windows版本信息和可选图标。当您运行“go build”时,Go将在可执行文件中嵌入版本信息和可选图标以及可选清单。如果它与main()函数位于同一目录中,Go将自动使用syso文件。
以上是关于如何在golang中设置应用程序图标?的主要内容,如果未能解决你的问题,请参考以下文章