Von*_*onC 33
您可以使用像akavel/rsrc这样的工具来生成包含在.rsrc部分中的指定资源的.syso文件,目的是在构建Win32 excecutables时由Go链接器使用.
请参阅lxn/walk应用程序示例,该应用程序将其他元数据嵌入其可执行文件中.
rsrc [-manifest FILE.exe.manifest] [-ico FILE.ico[,FILE2.ico...]] -o FILE.syso
Run Code Online (Sandbox Code Playgroud)
-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
Run Code Online (Sandbox Code Playgroud)
话题很长一段时间,实际上mingw只是要求,我们不需要第三方依赖。另外,资源文件*.rc对于Win32可执行应用程序是必需的。最后,您可以在rc-demo中找到该演示
1)使用Chocolatey安装mingw: choco install 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>
Run Code Online (Sandbox Code Playgroud)
3)创建main.rc文件
100 ICON "main.ico"
100 24 "main.exe.manifest"
101 RCDATA "content.zip"
Run Code Online (Sandbox Code Playgroud)
4)建立
在git-bash窗口中,执行以下命令:
windres -o main-res.syso main.rc && go build -i
上述答案都不适合我。我将 ico 嵌入到 GO exe 中的唯一方法是使用 Resource Hacker。
http://www.angusj.com/resourcehacker/
如果需要将其添加到构建脚本中,您也可以直接从命令行运行它。
ResourceHacker -open main.exe -save output.exe -action addskip -res main.ico -mask ICONGROUP,MAIN,
Run Code Online (Sandbox Code Playgroud)
小智 5
这效果很好:
go install github.com/tc-hib/go-winres@latest
go-winres simply --icon youricon.png
go build
Run Code Online (Sandbox Code Playgroud)
如果您的应用程序有 GUI:
go-winres simply --icon icon.png --manifest gui