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ı?
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:
Ö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
.
id ICON "path/to/my.ico"
id
Yukarı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:
windres my.rc -O coff -o my.res
Ardından, çalıştırılabilir dosyayı oluştururken, diğer nesne dosyaları ve kaynak dosyalarıyla birlikte, my.res
yukarıdaki adımdan elde ettiğimizi ekleyin . Örneğin:
g++ -o my_app obj1.o obj2.o res1.res my.res
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 .rc
dosyaya ekleyin ve yukarıda belirtilen adımları izleyin.
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'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 :
BLOCK "040904E4"
ve çeviri satırı:
VALUE "Translation", 0x409, 1252
Bilgi için VERSIONINFO kaynağına bakın .
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"'
IconsExtract
bir simgeye gömülü bir simge almak için Nirsoft'un ücretsiz yardımcı programını kullandım exe
.
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:
windres my.rc -O coff -o my.res
Kullanabilirsiniz:
windres my.rc my.o
my.o
MinGW en ile g++
sonra windres my.rc my.o
(bazı WinMain
lı hata mesajı), ancak windres my.rc -O coff -o my.res
yol cezası çalıştı.
.o
(= COFF otomatik olarak; my.res.o
açıklık olsun diye adlandırıyorum ) benim için çalışıyor. Aslında .res
MSVC tarafından üretilen dosyaların farklı bir formatı var, bu nedenle COFF in.res
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