Dans Windows, en utilisant gcc de mingw, existe-t-il de spécifier que le fichier exe de sortie doit prendre un fichier icône, de sorte que le fichier exe apparaisse avec cette icône dans l'explorateur?Comment ajouter une icône à un exécutable compilé mingw-gcc?
Répondre
Vous devez d'abord créer l'icône. Ensuite, vous devez créer un fichier RC qui ressemble à quelque chose comme ceci:
id ICON "path/to/my.ico"
L'ID peut à peu près tout. Ce n'est pas grave sauf si vous voulez faire référence à dans votre code. Ensuite, exécutez windres comme suit:
windres my.rc -O coff -o my.res
Ensuite, vous venez de comprendre my.res ainsi que vos fichiers objet lorsque vous liez, .: par exemple
g++ -o my_app obj1.o obj2.o my.res
Et cela devrait être tout ce qu'il ya à faire.
Et, sans frais supplémentaires, si vous souhaitez inclure des informations de version dans votre application , ajoutez la boilerplate suivante dans votre fichier .rc
et modifier de façon appropriée:
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
Note, le langID est pour l'anglais britannique (qui est la localisation la plus proche de Australie que je pourrais identifier.) Si vous voulez des Etats-Unis "anglais" alors changez la ligne BLOCK
à:
BLOCK "040904E4"
et la ligne de traduction:
VALUE "Translation", 0x409, 1252
Voir VERSIONINFO resource pour plus d'infos.
Dans le fichier RC, le nameID n'a même pas besoin d'être un nom, il peut simplement être un nombre entier. Le nom de fichier ne doit être cité que s'il contient un espace. Au lieu de :
windres my.rc -O coff -o my.res
Vous pouvez utiliser:
windres my.rc my.o
Je ne pouvais pas lier 'my.o' avec' g ++' de MinGW après 'windres my.rc my.o' (un message d'erreur' WinMain'), mais 'windres my.rc -O coff -o Le chemin de my.res a bien fonctionné. –
Ce serait génial si l'exemple indiquait où insérer la ligne ICON. – chacham15
Et ... d'autre part .. http://stackoverflow.com/questions/1411040/how-to-add-an-icon-to-an-application-built-with-eclipse-galileo-c-and-mingw –
vous pouvez également inclure plusieurs "Traductions" (il suffit de dire à Windows que ce programme est traduit) en ajoutant WORD, WORD-paires, par exemple: "VALUE" Traduction ", 0x409, 1252, 0x809, 1252' permettrait à la fois US et Anglais britannique selon http://msdn.microsoft.com/fr-fr/library/aa381058.aspx. Cela vous dit aussi que vous pouvez inclure plus d'un 'BLOCK' lang04E4 "' – WorldSEnder