mingw-gccでコンパイルされた実行可能ファイルにアイコンを追加するにはどうすればよいですか?


86

Windowsでは、mingwのgccを使用して、出力exeファイルがアイコンファイルを取得するように指定して、exeファイルがエクスプローラーでそのアイコンとともに表示されるようにする方法はありますか?

回答:


181

最初にアイコンを作成する必要があります。次に、以下の内容のRCファイルを作成する必要があります。ここでは、という名前を付けますmy.rc

id ICON "path/to/my.ico"

id上記のコマンドで言及はほとんど何もすることができます。コードで参照する場合を除いて、問題はありません。次に、次のようにwindresを実行します。

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

次に、実行可能ファイルをビルドするときに、他のオブジェクトファイルやリソースファイルとともにmy.res、上記の手順で取得したものを含めます。例えば:

g++ -o my_app obj1.o obj2.o res1.res 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リソースを参照してください。


6
例がICON行を挿入する場所を示していれば素晴らしいでしょう。
chacham15 2013年


たとえば、WORD、WORDペアを追加するだけで、複数の「翻訳」を含めることもできます(これは、このプログラムが翻訳されていることをWindowsに通知するだけです)。たとえばVALUE "Translation", 0x409, 1252, 0x809, 1252msdn.microsoft.com / en-us /に従って米国と英国の両方の英語を有効にします。library /aa381058.aspx。これは、複数の「ブロック「lang04E4」」を含めることができることも示しています
WorldSEnder 2014年

Nirsoftの無料ユーティリティIconsExtractを使用して、exe必要なアイコンを埋め込みました。
Evgeni Sergeev 2014年

6

RCファイルでは、nameIDは名前である必要はなく、整数にすることもできます。ファイル名は、それはスペースが含まれている場合にのみ引用符で囲む必要があります。の代わりに:

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

次を使用できます。

windres my.rc my.o

1
my.oとMinGWのg++after windres my.rc my.o(いくつかのWinMain関連するエラーメッセージ)をリンクできませんでしたが、windres my.rc -O coff -o my.resパスは正常に機能しました。
Evgeni Sergeev 2014年

.o(=自動的にCOFF。my.res.oわかりやすくするために名前を付けます)は私に適しています。実際に.resでCOFFを使用して/奇数互換性がないように思われるので、MSVCによって生成されたファイルとは、異なるフォーマットを持っている.res
KXR

1

ResourceHackerをお試しください。Linux(WSL)でプロジェクトをクロスコンパイルし、ホームページのロゴからアイコンを生成することができました。それをexeファイルに埋め込む簡単な方法が必要でしたが、このプログラムはうまく機能しました。 アンガスジョンソンによるリソースハッカー


これはずっと簡単でした。.exeを開き、[バイナリまたはイメージリソースの追加]をクリックして、.icoファイルを開き、保存しました。
endolith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.