前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为Go编译后的文件添加图标和版本信息

为Go编译后的文件添加图标和版本信息

作者头像
孤鸿
发布2022-10-04 15:02:30
7290
发布2022-10-04 15:02:30
举报
文章被收录于专栏:孤鸿孤鸿

一、获取所需的工具

  • GoVersionInfo
代码语言:javascript
复制
go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest
  • 执行完毕后GOPATHbin目录里出现一个goversioninfo.exe则为成功。 > 此处请注意,建议把Go环境变量GO111MODULE的值设置为auto > > GO111MODULE=auto >

二、源码设置

  • 关键代码://go:generate goversioninfo
  • 在需要编译的文件第一行添加,如:
代码语言:javascript
复制
//go:generate goversioninfo
package main
image-20220824222856389
image-20220824222856389

三、定义版本信息

  • 在项目目录创建一个名为versioninfo.jsonjson文件,内容如下:
代码语言:javascript
复制
{
    "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) 2022 GuHong",
        "LegalTrademarks": "",
        "OriginalFilename": "这是原始文件名",
        "PrivateBuild": "",
        "ProductName": "这是产品名称",
        "ProductVersion": "v1.0.0.0",
        "SpecialBuild": ""
    },
    "VarFileInfo": {
        "Translation": {
            "LangID": "0804",
            "CharsetID": "04B0"
        }
    },
    "IconPath": "icon.ico",
    "ManifestPath": ""
}

四、编译程序

  • 找一个ico图标命名为icon.ico放到项目目录。
image-20220824223308390
image-20220824223308390
  • 然后在项目目录执行命令:
代码语言:javascript
复制
go generate
//或者执行
goversioninfo

成功则会在目录中生成一个resource.syso文件,只用生成一次,改变了json文件内容或图标的话,需要再次生成。

image-20220824224015255
image-20220824224015255

最后执行

代码语言:javascript
复制
go build    //直接编译
//或者执行
go build -ldflags "-s -w"    //减小编译后的文件大小

> 注:以上所有操作均在项目根目录下操作 >

五、展示效果

image-20220824224343001
image-20220824224343001
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、获取所需的工具
  • 二、源码设置
  • 三、定义版本信息
  • 四、编译程序
  • 五、展示效果
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档