golang EXE程序添加图标和详细信息(版本号,版权,公司信息等) 作为桌面程序,有一个图标,显得更正式一些。详细信息有版本号方便做版本识别。算了,编不下去了。不管那么多,反正别人有这些,你就应该有这些功能(无奈)。golang 作为一个后端语言,对windows 界面编程支持不是那么友好,直接添加图标和详细信息有一定难度。还好有第三方库–GoVersionInfo,可以帮助我们解决这一难题。 程序包将创建一个syso文件,其中包含Microsoft Windows版本信息和一个可选图标。当您运行“ go build”时,Go将在可执行文件中嵌入版本信息以及可选图标和可选清单。如果它与main()函数位于同一目录中,则Go将自动使用syso文件。 要安装,请运行以下命令: 这里默认,你已经安装golang并配置好GOPATH,GOROOT等环境变量.同时也安装了git bash. 将刚下载下来的GoVersionInfo 的目录github.comjosephspurriergoversioninfotestdataresource拷贝到我们的工程目录(main.go所在目录).并把目录中的versioninfo.json拷贝到与main.go同目录。 在main.go 的第一行添加: 然后修改与main.go同一级目录下的versioninfo.json文件。将里面的字段“ProductVersion”更改为你想要的版本号即可.(同时也可以修改其他信息如:版权,产品名称,文件说明等) 首先用,go generate 命令生成resource.syso资源文件 上面的解决办法是,编译时带一下参数 -ldflags=”-linkmode internal” 简单点说,直接执行以下命令即可: 编译成功后,右键查看属性吧为什么要添加图标和详细信息
什么是GoVersionInfo
githup,描述如上所示。大意是:GoVersionInfo是用于Go语言的Microsoft Windows文件属性/版本信息和图标资源生成器安装GoVersionInfo
go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo
文件目录布局
目标布局如下图:
修改文件
//go:generate goversioninfo -icon=resource/icon.ico -manifest=resource/goversioninfo.exe.manifest
编译命令
再用,go build 命令生成EXE文件。这里需要用Directory的方式编译,不能用File的方式编译。(也就是不能用go build main.go 这种方式)。原因是通过Directory的方式编译,编译器会自动寻找同目录下的资源文件并打包进EXE。
在编译过程中,你可能会遇到如下报错:C:Gopkgtoolwindows_amd64link.exe: running gcc failed: exit status 1 C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `C:UsershjdAppDataLocalTempgo-link-681106599000000.o' is incompatible with i386:x86-64 output collect2.exe: error: ld returned 1 exit status
所以,编译命令是:go build -o yourapp.exe -ldflags=”-linkmode internal”go generate go build -o yourappname.exe -ldflags="-linkmode internal"
如有疑问,欢迎在评论区留言
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算