Windows 如何向mingw gcc编译的可执行文件添加图标?
在Windows中,使用mingw的gcc,是否可以指定输出exe文件采用图标文件,以便exe文件在资源管理器中显示该图标?您需要先创建图标。然后您需要创建一个包含以下内容的RC文件。这里我们将它命名为Windows 如何向mingw gcc编译的可执行文件添加图标?,windows,gcc,icons,mingw,Windows,Gcc,Icons,Mingw,在Windows中,使用mingw的gcc,是否可以指定输出exe文件采用图标文件,以便exe文件在资源管理器中显示该图标?您需要先创建图标。然后您需要创建一个包含以下内容的RC文件。这里我们将它命名为my.rc id ICON "path/to/my.ico" 上述命令中提到的id几乎可以是任何东西。这并不重要,除非您想在代码中引用它。然后运行windres,如下所示: windres my.rc -O coff -o my.res 然后,在构建可执行文件时,与其他对象文件和资源文件一起,
my.rc
id ICON "path/to/my.ico"
上述命令中提到的id
几乎可以是任何东西。这并不重要,除非您想在代码中引用它。然后运行windres,如下所示:
windres my.rc -O coff -o my.res
然后,在构建可执行文件时,与其他对象文件和资源文件一起,包括我们从上述步骤获得的my.res
。e、 g:
g++ -o my_app obj1.o obj2.o res1.res my.res
这就是它的全部
而且,如果您想在您的应用程序中包含版本信息,则不需要额外收费 应用程序,将以下样板文件添加到新的
.rc
文件中,并按照上述步骤操作
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904E4"
BEGIN
VALUE "CompanyName", "My Company Name"
VALUE "FileDescription", "My excellent application"
VALUE "FileVersion", "1.0"
VALUE "InternalName", "my_app"
VALUE "LegalCopyright", "My Name"
VALUE "OriginalFilename", "my_app.exe"
VALUE "ProductName", "My App"
VALUE "ProductVersion", "1.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1252
END
END
注意,LangID是英国英语(这是最接近的本地化)。
澳大利亚(我可以识别。)如果您想要美国“英语”,请更改块
行至:
将翻译行改为:
VALUE "Translation", 0x409, 1252
有关信息,请参阅。在RC文件中,nameID甚至不必是名称,它可以是
整数。仅当文件名包含空格时,才必须引用该文件名。相反
其中:
您可以使用:
windres my.rc my.o
如果示例显示了在何处插入图标行,那就太好了。而且。。。其次您还可以通过添加单词、单词对来包含多个“翻译”(这只是告诉Windows此程序已翻译),例如:
VALUE“Translation”,0x409、1252、0x809、1252
将根据需要启用美国和英国英语。这还告诉您,您可以包含多个“BLOCK”lang04E4“我使用Nirsoft的免费实用程序iconextract
在我需要的exe
中嵌入图标。我无法在windres my.rc my.o
之后将my.o
与MinGW的g++
链接(一些WinMain
相关错误消息),但是windres my.rc-O coff-O my.res
路径运行良好。.O
(=coff自动;为了清晰起见,我将其命名为my.res.O
)对我来说很有效。实际上,由MSVC生成的.res
文件具有不同的格式,因此在.res
中使用COFF似乎有点奇怪/不兼容。这更简单。只需打开.exe,单击“添加二进制或图像资源”,打开.ico文件并保存。
windres my.rc -O coff -o my.res
windres my.rc my.o