生成syso文件
rsrc是在Windows的Go程序中嵌入.ico和manifest资源的工具
载安装rsrc
go get github.com/akavel/rsrc
生成程序描述文件ico.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"
></assemblyIdentity>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
生成go程序嵌入文件
rsrc -manifest ico.manifest -o myapp.syso -ico myapp.ico
编译Go程序
将myapp.syso
文件放到相应go程序下,而后直接运行go build -ldflags '-H windowsgui -w'
便可
golang已经能够自动寻找子目录下的 syso 文件
其中ldflags
中的参数,-H windowsgui
为隐藏命令行窗口,因为我写的是gui程序,-w
是裁剪gdb调试信息,这样生成的exe体积会小一些。