In Windows, mit mingw gcc, gibt es sowieso, um anzugeben, dass die Ausgabe exe-Datei eine Symboldatei zu nehmen, so dass die EXE-Datei mit diesem Symbol im Explorer angezeigt wird?Wie füge ich ein Symbol zu einer Mingw-GCC kompilierten ausführbaren Datei hinzu?
Antwort
Sie müssen zuerst das Symbol erstellen. Dann brauchen Sie eine RC-Datei zu erstellen, dass etwas wie folgt aussieht:
id ICON "path/to/my.ico"
Die ID kann so ziemlich alles. Es spielt keine Rolle, wenn Sie in Ihrem Code auf verweisen möchten. Dann laufen windres wie folgt:
windres my.rc -O coff -o my.res
dann nur Sie my.res zusammen mit Ihren Objektdatei enthalten, wenn Sie verknüpfen, z.B .:
g++ -o my_app obj1.o obj2.o my.res
Und das sollte alles, was es ihm sein.
Und ohne Aufpreis, wenn Sie die Versionsinformationen in Ihrer Anwendung aufnehmen möchten, fügen Sie den folgenden Textvorschlag zu Ihrer .rc
Datei und ändern entsprechend:
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
Hinweis, die SprachID ist für UK Englisch (das ist die nächstgelegene Lokalisierung zu Australien konnte ich identifizieren.) Wenn Sie US "Englisch" möchten, dann ändern Sie die BLOCK
Zeile zu:
BLOCK "040904E4"
und die Übersetzungszeile zu:
VALUE "Translation", 0x409, 1252
Siehe VERSIONINFO resource für weitere Informationen ein.
In der RC-Datei muss die nameID nicht einmal ein Name sein, es kann einfach eine Ganzzahl sein. Der Dateiname darf nur zitiert werden, wenn er ein Leerzeichen enthält. Statt von:
windres my.rc -O coff -o my.res
können Sie verwenden:
windres my.rc my.o
Ich konnte die 'my.o' nicht mit MinGWs' g ++ 'nach' windres my.rc my.o' verbinden (eine 'WinMain'-bezogene Fehlermeldung), aber die' windres my.rc -Ocoff -o my.res' Weg hat gut funktioniert. –
Es wäre großartig, wenn das Beispiel zeigt, wo die ICON-Zeile eingefügt werden soll. – chacham15
Und ... zweitens .. http://stackoverflow.com/questions/1411040/how-to-add-an-icon-to-anapplication-built-with-eclipse-galileo-c-and-mingw –
Sie können auch mehrere "Übersetzungen" hinzufügen (es wird nur Windows gesagt, dass dieses Programm übersetzt wird), indem Sie einfach WORD, WORD-Paare anhängen, zum Beispiel: 'VALUE" Translation ", 0x409, 1252, 0x809, 1252' würde sowohl US als auch aktivieren UK Englisch nach http://msdn.microsoft.com/de-de/library/aa381058.aspx. Dies sagt Ihnen auch, dass Sie mehr als einen "BLOCK" lang04E4 "" – WorldSEnder