制作Ico图标文件
将图片素材进行编辑,可以截取成正方形,然后以通过在线转换图标工具转换成 ico
格式的图标文件
将ico图标文件放在之前编写好的 startprintservices.cpp
文件目录中
创建资源文件
接着我们创建一个文件命名为 ico.rc
的文件,添加内容如下:
A ICON "myicon.ico"
使⽤windres链接rc⽂件,链接输出⽂件扩展名为.o
windres -i ico.rc -o ico-out.o
组合编译
我们再次进行编译,将资源文件也放入进去,此时生成的exe程序文件就可以显示图标了。
g++ startprintservices.cpp ico-out.o -o startprintservices.exe
windress 命令介绍
windres是Windows资源编译器,用于编译Windows资源文件(.rc)为COFF对象文件(.obj)或Windows资源文件(.res)。
它是MinGW工具链的一部分,可以被Visual C++编译器使用。
windres的常用命令格式:
windres [options] input-file
input-file是要编译的.rc资源文件。常用选项包括:
- o <output-file> :设置输出文件的名称。默认为input-file.obj或input-file.res。
- O <output-format> :设置输出文件格式。可以是obj(默认)、res或coff。
- i <include-path> :添加包含路径。用于搜索的.h头文件。
- I <resource-include-path> :添加资源包含路径。用于搜索的.rc资源文件。
- v :输出详细信息。用于调试。
举个例子,有 resource.rc
资源文件,要编译为 resource.res
命令为:
windres resource.rc -O res -o resource.res
此外,如果资源文件引用了资源定义文件 resource.h
,编译时需要指定该头文件路径:
windres resource.rc -O res -o resource.res -i D:\Code\include
windres常用于:
- Windows资源文件的编译。它可以将.rc文件编译为.obj对象文件或.res资源文件,然后链接到应用程序。
- 与非微软工具链(如MinGW或Cygwin)一起开发Windows应用程序时,编译资源文件。
- 手工开发和编译资源时,直接使用windres可以省去IDE的资源编辑器。
- 构建脚本或makefile时,在命令行编译和链接资源文件。