序言:本节完整介绍界面开发编译环境、打包方法。
一、编译准备
1.1依赖库安装
- “github.com/lxn/walk”
- “github.com/lxn/win”
安装命令 :go get -u github.com/lxn/walk 该命令会触发依赖,所以win就不用再单独下载。
1.2工具准备
- rsrc.exe
安装命令:go install github.com/akavel/rsrc 完成安装,rsrc.exe将生成在工程bin目录下。
1.3、 编译*.syso文件 名字任意取
首先 创建main.mainfest文件(必须有),不知道怎么写拷贝下面代码即可
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
然后编译生成*.syso
rsrc.exe -manifest main.manifest -ico icon\search.ico -o rsrc.syso
-manifest FILE.manifest:必填项,该处的main.manifest最好和main函数在同一目录下
-ico FILE.ico[,FILE2.ico...]:可选 指定生成的.syso文件中包含图标,用于给后续编译出的exe文件指定图标(图标最好放在main函数目录下),如果不要图标忽略即可
-o:指定生成后的 .syso文件名,任意名字均可
示例:
未指定图标:
指定图标:
1.4、 生成exe程序
go build -ldflags="-s -w -H windowsgui" -o search.exe
解释:
-s:去掉符号信息 (这样panic时,stack trace就没有任何文件名/行号信息了,这等价于普通C/C+=程序被strip的效果);
-w:去掉DWARF调试信息 (得到的程序就不能用gdb调试了);
-H windowsgui : 以windows gui形式打包,不带dos窗口。其中注意H是大写的;
警告:main文件目录下必须有*.syso文件,名字任意均可,否则即使编译成功,界面也打不开。
二、打包工具安装
2.1 HM VNISEdit软件
作用:
- 生成打包脚本.nsi,使用方法如下图,根据向导提示即可
2.2 makensisw.exe软件
- 编译.nsi脚本,生成最终的exe安装包