一. 引言
以前做的一个项目有个需求, 需要在Linux系统上的服务后端根据前端配置动态编译出能在Windows平台运行的程序, 并且能支持程序带图标, 虽然使用Go语言能够方便的编译跨平台运行的代码, 但编译带资源图标的Windows可执行程序还未尝试过, 本篇文章对这部分内容做一个实践尝试。
二. 准备工作
如果要单独完成这项任务, 需要准备以下几样"配菜":
1.rsrc程序, 开源项目, 地址: https://github.com/akavel/rsrc
2.一份模拟在Windows平台运行的源码, 当被自动编译后, 能看到运行效果。
3.一份图标文件, 文件后缀为.ico。
4.一份模拟服务后端功能的程序, 该程序负责编译出最终带图标的Windows程序。
下面将依次介绍这四样"配菜"的调制方法:
2.1 rsrc程序
rsrc程序是一个开源专门负责将ico资源文件写入Windows PE可执行程序的工具, 该工具使用Go语言开发, 能够支持将rsrc代码编译成支持不同平台的可执行程序, 支持的系统包括: Darwin、Linux(amd64)、Windows(386)、Windows(amd64)。
rsrc程序的参数在实际使用过程中主要有三个:
1.-arch 该参数将指定嵌入资源后的程序运行的CPU架构, 为了向下同时兼容32位和64位系统, 这里一般设置的参数为:"-arch 386"。
2.-ico 该参数执行传入的图标文件保存的全路径。
3.-o 该参数是一个输出参数, 将输出一个.res或者.syso的资源文件, 如果不指定资源文件的名字, rsrc将默认输出一个名为:rsrc_windows_{arch}.syso的文件, 在我们实际应用中, 将输出格式为: .syso的文件。

本文介绍了如何在Linux系统中使用rsrc工具和Go语言编译带有图标的Windows程序。首先,介绍了rsrc工具的使用方法,然后详细阐述了编译过程,包括模拟Windows程序的编写、图标文件的准备和服务后端程序的角色。通过交叉编译,最终在Linux上成功生成了可在Windows运行的带图标的可执行文件,并进行了验证。

1357

被折叠的 条评论
为什么被折叠?



