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

2022-10-04 15:02:30 浏览数 (1)

一、获取所需的工具

  • 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

三、定义版本信息

  • 在项目目录创建一个名为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放到项目目录。
  • 然后在项目目录执行命令:
代码语言:javascript复制
go generate
//或者执行
goversioninfo

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

最后执行

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

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

五、展示效果

0 人点赞