windows - Hvordan tilføjer jeg et ikon til en mingw-gcc kompileret eksekverbar?

Indlæg af Hanne Mølgaard Plasc

Problem



I Windows, ved at bruge mingw 's gcc, er der alligevel at angive, at output exe filen skal tage en ikonfil, så exe filen viser med det ikon i explorer?

Bedste reference


Du skal først oprette ikonet. Så skal du oprette en RC-fil der
ser noget sådan ud:


id ICON "path/to/my.ico"


ID'et kan stort set alt. Det betyder ikke noget, medmindre du vil henvise til
det i din kode. Kør derefter windres som følger:


windres my.rc -O coff -o my.res


Så omfatter du bare my.res sammen med dine objektfiler, når du linker, f.eks .:


g++ -o my\_app obj1.o obj2.o my.res


Og det burde være alt der er til det.





Og uden ekstra omkostninger, hvis du vil medtage versionsoplysninger i din
ansøgning, tilføj følgende boilerplate til din .rc fil og modificer
passende:


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


Bemærk, langID er for engelsk engelsk (som er den nærmeste lokalisering til
Australien jeg kunne identificere.) Hvis du vil have amerikansk 'engelsk', skal du ændre BLOCK
linje til:


BLOCK "040904E4"


og oversættelseslinjen til:


VALUE "Translation", 0x409, 1252


Se VERSIONINFO ressource til for info. //msdn.microsoft.com/library/aa381058

Andre referencer 1


I RC-filen skal nameID ikke engang være et navn, det kan bare være
et heltal. Filnavn må kun citeres, hvis det indeholder et mellemrum. I stedet
af:


windres my.rc -O coff -o my.res


Du kan bruge:


windres my.rc my.o