在Windows系统上,使用mingw的gcc编译器是否有任何方法可以指定输出exe文件的图标文件,以便在资源管理器中显示该图标?
my.rc
。id ICON "path/to/my.ico"
id
可以是任何值,除非您想在代码中引用它。然后按如下方式运行windres:windres my.rc -O coff -o my.res
然后在构建可执行文件时,除了其他目标文件和资源文件外,还要包括从上一步得到的my.res
。例如:
g++ -o my_app obj1.o obj2.o res1.res my.res
这就是全部了。
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
BLOCK "040904E4"
并将翻译行返回:
VALUE "Translation", 0x409, 1252
请查看VERSIONINFO资源以获取更多信息。
windres my.rc -O coff -o my.res
您可以使用:
windres my.rc my.o
windres my.rc my.o
命令后,我无法将my.o
与MinGW的g++
链接起来(出现了一些与WinMain
相关的错误信息),但是使用windres my.rc -O coff -o my.res
命令则可以正常工作。 - Evgeni Sergeev.o
(= COFF automatically; I name it like my.res.o
for clarity) works for me. Actually .res
files as produced by MSVC have a different format, so it seems to be odd/incompatible using COFF in .res
- kxr
VALUE "Translation",0x409,1252,0x809,1252
将根据http://msdn.microsoft.com/en-us/library/aa381058.aspx启用美式和英式英语。这也告诉您可以包含多个“BLOCK“lang04E4”。 - WorldSEnderIconsExtract
来提取我需要的嵌入在exe
文件中的图标。 - Evgeni Sergeevwindres
?我已经安装了binutils-mingw-w64-i686
,但是找不到windres
。 - endolith