Mingw-gcc derlenmiş bir yürütülebilir dosyaya nasıl simge eklerim?


90

Windows'ta, mingw'nin gcc'sini kullanarak, çıktı exe dosyasının bir simge dosyası alacağını, böylece exe dosyasının explorer'da bu simgeyle birlikte gösterileceğini belirtmenin bir yolu var mı?

Yanıtlar:


187

Önce simgeyi oluşturmanız gerekir. Ardından aşağıdaki içeriğe sahip bir RC dosyası oluşturmanız gerekir. Burada adını vereceğiz my.rc.

idYukarıdaki komutla belirtilen hemen hemen her şey olabilir. Kodunuzda ona atıfta bulunmak istemediğiniz sürece önemli değil. Ardından aşağıdaki gibi windres çalıştırın:

Ardından, çalıştırılabilir dosyayı oluştururken, diğer nesne dosyaları ve kaynak dosyalarıyla birlikte, my.resyukarıdaki adımdan elde ettiğimizi ekleyin . Örneğin:

Ve hepsi bu kadar olmalı.


Ayrıca, ek ücret ödemeden, uygulamanıza sürüm bilgilerini dahil etmek istiyorsanız, aşağıdaki standart şablonu yeni bir .rcdosyaya ekleyin ve yukarıda belirtilen adımları izleyin.

LangID'nin İngiltere İngilizcesi için olduğunu unutmayın (Avustralya'ya en yakın yerelleştirme budur) ABD "İngilizcesi" istiyorsanız, BLOCK satırı şu şekilde değiştirin :

ve çeviri satırı:

Bilgi için VERSIONINFO kaynağına bakın .


6
Örnek ICON satırının nereye ekleneceğini gösterirse harika olurdu.
chacham15


Yalnızca WORD, WORD çiftlerini ekleyerek birden çok "Translation" (yalnızca Windows'a bu programın çevrildiğini söyler) dahil edebilirsiniz, örneğin: msdn.microsoft.com/en-us/VALUE "Translation", 0x409, 1252, 0x809, 1252 adresine göre hem ABD hem de İngiltere İngilizcesini etkinleştirir library / aa381058.aspx . Bu aynı zamanda size birden fazla 'BLOCK "lang04E4"'
ekleyebileceğinizi söyler

İhtiyacım olan IconsExtractbir simgeye gömülü bir simge almak için Nirsoft'un ücretsiz yardımcı programını kullandım exe.
Evgeni Sergeev

6

RC dosyasında, nameID'nin bir isim olması bile gerekmez, sadece bir tamsayı olabilir. Dosya adı bir boşluk içeriyorsa tırnak içinde olmalıdır. Onun yerine:

Kullanabilirsiniz:


1
Ben bağlantı olamazdı my.oMinGW en ile g++sonra windres my.rc my.o(bazı WinMainlı hata mesajı), ancak windres my.rc -O coff -o my.resyol cezası çalıştı.
Evgeni Sergeev

.o(= COFF otomatik olarak; my.res.oaçıklık olsun diye adlandırıyorum ) benim için çalışıyor. Aslında .resMSVC tarafından üretilen dosyaların farklı bir formatı var, bu nedenle COFF in.res
kxr

1

Resource Hacker'ı deneyin. Projemi Linux'ta (WSL) çapraz derleyebildim ve ana sayfadaki logodan bir simge oluşturabildim. Sadece exe'ye yerleştirmek için basit bir yola ihtiyacım vardı ve bu program harika çalıştı. Kaynak Hacker, Angus Johnson


Bu çok daha kolaydı. Sadece .exe dosyasını açın, "İkili veya Resim Kaynağı Ekle" yi tıklayın, .ico dosyasını açın ve kaydedin.
endolith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.