ใน Windows โดยใช้ gcc ของ mingw มีการระบุหรือไม่ว่าไฟล์ exe ที่ส่งออกคือการใช้ไฟล์ไอคอนเพื่อให้ไฟล์ exe แสดงพร้อมกับไอคอนนั้นใน explorer
ใน Windows โดยใช้ gcc ของ mingw มีการระบุหรือไม่ว่าไฟล์ exe ที่ส่งออกคือการใช้ไฟล์ไอคอนเพื่อให้ไฟล์ exe แสดงพร้อมกับไอคอนนั้นใน explorer
คำตอบ:
คุณต้องสร้างไอคอนก่อน จากนั้นคุณต้องสร้างไฟล์ 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สำหรับข้อมูล
VALUE "Translation", 0x409, 1252, 0x809, 1252
จะเปิดใช้งานทั้งภาษาอังกฤษแบบสหรัฐอเมริกาและแบบสหราชอาณาจักรตามmsdn.microsoft.com/en-us/ ห้องสมุด นอกจากนี้ยังบอกด้วยว่าคุณสามารถใส่ "BLOCK" lang04E4 "'ได้มากกว่าหนึ่งรายการ
IconsExtract
เพื่อรับไอคอนที่ฝังอยู่ในสิ่งexe
ที่ฉันต้องการ
ในไฟล์ RC nameIDไม่จำเป็นต้องเป็นชื่อ แต่สามารถเป็นจำนวนเต็ม ชื่อไฟล์จะต้องยกมา แต่ถ้ามันมีช่องว่าง แทน:
windres my.rc -O coff -o my.res
คุณสามารถใช้ได้:
windres my.rc my.o
my.o
กับ MinGW g++
หลังจากwindres my.rc my.o
( WinMain
ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง) แต่windres my.rc -O coff -o my.res
เส้นทางใช้งานได้ดี
.o
(= กาแฟโดยอัตโนมัติฉันตั้งชื่อmy.res.o
เพื่อความชัดเจน) เหมาะสำหรับฉัน จริงๆแล้ว.res
ไฟล์ที่สร้างโดย MSVC มีรูปแบบที่แตกต่างกันดังนั้นจึงดูเหมือนว่าจะแปลก / ไม่เข้ากันเมื่อใช้ COFF ใน.res
ลองใช้ Resource Hacker ฉันสามารถข้ามการคอมไพล์โครงการของฉันใน Linux (WSL) และสร้างไอคอนจากโลโก้บนหน้าแรก ต้องการเพียงวิธีง่ายๆในการฝังลงใน exe และโปรแกรมนี้ก็ใช้งานได้ดี แฮ็กเกอร์ทรัพยากรโดย Angus Johnson