Frage Wie füge ich ein Symbol zu einer mingw-gcc-kompilierten ausführbaren Datei hinzu?


In Windows, mit gmcc mingw, gibt es sowieso, um anzugeben, dass die Ausgabe exe-Datei eine Icon-Datei zu nehmen, so dass die EXE-Datei mit diesem Symbol im Explorer angezeigt wird?


76
2018-04-02 03:57


Ursprung


Antworten:


Sie müssen zuerst das Symbol erstellen. Dann müssen Sie eine RC-Datei erstellen, die sieht in etwa so aus:

id ICON "path/to/my.ico"

Die ID kann so ziemlich alles. Es ist nicht wichtig, wenn Sie sich nicht darauf beziehen wollen es in deinem Code. Dann führe Windres wie folgt aus:

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

Dann schließen Sie einfach my.res zusammen mit Ihren Objektdateien ein, wenn Sie eine Verbindung herstellen, z.

g++ -o my_app obj1.o obj2.o my.res

Und das sollte alles sein, was dazu gehört.


Und ohne zusätzliche Kosten, wenn Sie die Versionsinformationen in Ihre Anwendung, füge folgende Tabelle hinzu .rc Datei und ändern passend:

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

Beachten Sie, dass die langID für UK Englisch ist (das ist die nächste Lokalisierung zu Australien konnte ich identifizieren.) Wenn Sie "Englisch" möchten, dann ändern Sie die BLOCK Linie zu:

BLOCK "040904E4"

und die Übersetzungszeile zu:

VALUE "Translation", 0x409, 1252

Sehen VERSIONINFO-Ressource für Informationen.


165
2018-04-02 05:14



In der RC-Datei, der NameID muss nicht einmal ein Name sein, es kann einfach sein eine ganze Zahl. Das Dateiname muss nur zitiert werden, wenn es ein Leerzeichen enthält. Stattdessen von:

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

Sie können verwenden:

windres my.rc my.o

5
2017-10-02 02:20