Go语言给编译出来的程序添加图标和版本信息

twgh · · 1226 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

## 前言 本文章基于go1.17版本创作,1.16和1.17经过测试没有问题,1.18版本暂未测试。 本文所需要的工具来自于:[https://github.com/josephspurrier/goversioninfo](https://github.com/josephspurrier/goversioninfo) ## 一、获取所需的工具 ```go go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest ``` 执行完毕后**GOPATH**的bin目录里出现一个**goversioninfo.exe**则为成功。 ## 二、准备源码 关键的一行代码就是`//go:generate goversioninfo` ```go //go:generate goversioninfo package main import ( "fmt" "time" ) func main() { fmt.Println("hello world") for { time.Sleep(time.Hour) } } ``` ## 三、在项目目录创建一个文件名为versioninfo.json json文件内容是: ```json { "FixedFileInfo": { "FileVersion": { "Major": 1, "Minor": 0, "Patch": 0, "Build": 0 }, "ProductVersion": { "Major": 1, "Minor": 0, "Patch": 0, "Build": 0 }, "FileFlagsMask": "3f", "FileFlags ": "00", "FileOS": "040004", "FileType": "01", "FileSubType": "00" }, "StringFileInfo": { "Comments": "这是程序描述", "CompanyName": "这是公司名称", "FileDescription": "这是文件说明", "FileVersion": "v1.0.0.0", "InternalName": "这是程序内部名称", "LegalCopyright": "Copyright (c) 2021 XCGUI", "LegalTrademarks": "", "OriginalFilename": "这是原始文件名", "PrivateBuild": "", "ProductName": "这是产品名称", "ProductVersion": "v1.0.0.0", "SpecialBuild": "" }, "VarFileInfo": { "Translation": { "LangID": "0804", "CharsetID": "04B0" } }, "IconPath": "icon.ico", "ManifestPath": "" } ``` ## 五、编译程序 找一个ico图标命名为**icon.ico**放到项目目录。 ![一](https://img-blog.csdnimg.cn/6965bbde2ed74e89a5b0d38fa819a765.png#pic_center) 然后执行命令: ```go go generate ``` 成功则会在目录中生成一个**resource.syso**文件,只用生成一次就行了,改变了json或图标的话,需要再次生成。 最后执行**go build** ## 六、展示效果 ![二](https://img-blog.csdnimg.cn/c0224c0a87484fa18e0d76662ba593b7.png#pic_center) ![三](https://img-blog.csdnimg.cn/5683d92261d2430c9579dab88e6987f4.png#pic_center)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1226 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传