Как добавить значок в скомпилированный исполняемый файл mingw-gcc? - PullRequest
80 голосов
/ 02 апреля 2009

В Windows, использующей gcc mingw, можно ли в любом случае указать, что выходной exe-файл должен принимать файл значков, чтобы exe-файл отображался с этим значком в проводнике?

Ответы [ 3 ]

171 голосов
/ 02 апреля 2009

Сначала нужно создать иконку. Затем вам нужно создать 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 ресурс .

5 голосов
/ 02 октября 2014

В файле RC, nameID даже не обязательно должно быть именем, оно может быть просто целое число имя файла должно быть заключено в кавычки, только если оно содержит пробел. Вместо из:

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

Вы можете использовать:

windres my.rc my.o
0 голосов
/ 29 мая 2019

Попробуйте Resource Hacker. Мне удалось скомпилировать мой проект в Linux (WSL) и создать значок из логотипа на домашней странице. Просто нужен был простой способ вставить его в exe, и эта программа работала отлично. Хакер ресурсов Ангуса Джонсона

...