在Windows中,使用mingw的gcc,无论如何都要指定输出exe文件是一个图标文件,以便exe文件在资源管理器中显示该图标?
答案 0 :(得分:170)
您需要先创建图标。然后你需要创建一个RC文件 看起来像这样:
id ICON "path/to/my.ico"
身份证几乎可以。除非你想参考,否则没关系 它在你的代码中。然后运行windres如下:
windres my.rc -O coff -o my.res
然后,您只需在链接时将my.res与目标文件一起包括在内,例如:
g++ -o my_app obj1.o obj2.o 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适用于英国英语(这是最接近的本地化)
澳大利亚我可以识别。)如果你想要美国“英语”,那么改变BLOCK
行到:
BLOCK "040904E4"
和翻译行:
VALUE "Translation", 0x409, 1252
有关信息,请参阅VERSIONINFO resource。
答案 1 :(得分:5)
在RC文件中, nameID 甚至不必是名称,它可以只是 整数。仅当 filename 包含空格时,才必须引用它。代替 的:
windres my.rc -O coff -o my.res
您可以使用:
windres my.rc my.o
答案 2 :(得分:0)
尝试Resource Hacker。我能够在Linux(WSL)中交叉编译我的项目,并从主页上的徽标生成一个图标。只需要一种简单的方法将其嵌入exe中,该程序就可以很好地工作。 Resource Hacker by Angus Johnson