ฉันจะเพิ่มไอคอนลงในไฟล์ปฏิบัติการที่คอมไพล์ mingw-gcc ได้อย่างไร


90

ใน Windows โดยใช้ gcc ของ mingw มีการระบุหรือไม่ว่าไฟล์ exe ที่ส่งออกคือการใช้ไฟล์ไอคอนเพื่อให้ไฟล์ exe แสดงพร้อมกับไอคอนนั้นใน explorer

คำตอบ:


187

คุณต้องสร้างไอคอนก่อน จากนั้นคุณต้องสร้างไฟล์ RC ที่มีเนื้อหาด้านล่าง ที่นี่เราจะตั้งชื่อเป็นmy.rc.

ที่idกล่าวถึงในคำสั่งข้างต้นสามารถเป็นอะไรก็ได้ ไม่สำคัญเว้นแต่คุณต้องการอ้างถึงในโค้ดของคุณ จากนั้นเรียกใช้ windres ดังนี้:

จากนั้นในขณะที่สร้างไฟล์ปฏิบัติการพร้อมกับไฟล์ออบเจ็กต์และไฟล์ทรัพยากรอื่น ๆ ให้รวมmy.resสิ่งที่เราได้รับจากขั้นตอนข้างต้น เช่น:

และนั่นควรจะมีทั้งหมด


และไม่มีค่าใช้จ่ายเพิ่มเติมหากคุณต้องการรวมข้อมูลเวอร์ชันในแอปพลิเคชันของคุณให้เพิ่มต้นแบบต่อไปนี้ลงใน.rcไฟล์ใหม่และทำตามขั้นตอนที่กล่าวถึงข้างต้น

หมายเหตุ langID เป็นภาษาอังกฤษแบบสหราชอาณาจักร (ซึ่งเป็นการแปลที่ใกล้เคียงที่สุดกับออสเตรเลียที่ฉันสามารถระบุได้) หากคุณต้องการ "อังกฤษ" แบบสหรัฐอเมริกาให้เปลี่ยนBLOCK บรรทัดเป็น:

และสายการแปลไปที่:

ดูแหล่งข้อมูล VERSIONINFOสำหรับข้อมูล


6
จะดีมากถ้าตัวอย่างแสดงตำแหน่งที่จะแทรกเส้น ICON
chacham15

และ ... ประการที่สอง .. stackoverflow.com/questions/1411040/…
Erik Friesen

คุณยังสามารถใส่ "การแปล" ได้หลายรายการ (เพียงแค่บอก Windows ว่าโปรแกรมนี้แปลแล้ว) โดยเพียงแค่ต่อท้าย WORD คู่ WORD เช่นVALUE "Translation", 0x409, 1252, 0x809, 1252จะเปิดใช้งานทั้งภาษาอังกฤษแบบสหรัฐอเมริกาและแบบสหราชอาณาจักรตามmsdn.microsoft.com/en-us/ ห้องสมุด นอกจากนี้ยังบอกด้วยว่าคุณสามารถใส่ "BLOCK" lang04E4 "'ได้มากกว่าหนึ่งรายการ
WorldSEnder

ฉันใช้ยูทิลิตี้ฟรีของ Nirsoft IconsExtractเพื่อรับไอคอนที่ฝังอยู่ในสิ่งexeที่ฉันต้องการ
Evgeni Sergeev

6

ในไฟล์ RC nameIDไม่จำเป็นต้องเป็นชื่อ แต่สามารถเป็นจำนวนเต็ม ชื่อไฟล์จะต้องยกมา แต่ถ้ามันมีช่องว่าง แทน:

คุณสามารถใช้ได้:


1
ฉันไม่สามารถเชื่อมโยงmy.oกับ MinGW g++หลังจากwindres my.rc my.o( WinMainข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง) แต่windres my.rc -O coff -o my.resเส้นทางใช้งานได้ดี
Evgeni Sergeev

.o(= กาแฟโดยอัตโนมัติฉันตั้งชื่อmy.res.oเพื่อความชัดเจน) เหมาะสำหรับฉัน จริงๆแล้ว.resไฟล์ที่สร้างโดย MSVC มีรูปแบบที่แตกต่างกันดังนั้นจึงดูเหมือนว่าจะแปลก / ไม่เข้ากันเมื่อใช้ COFF ใน.res
kxr

1

ลองใช้ Resource Hacker ฉันสามารถข้ามการคอมไพล์โครงการของฉันใน Linux (WSL) และสร้างไอคอนจากโลโก้บนหน้าแรก ต้องการเพียงวิธีง่ายๆในการฝังลงใน exe และโปรแกรมนี้ก็ใช้งานได้ดี แฮ็กเกอร์ทรัพยากรโดย Angus Johnson


วิธีนี้ง่ายกว่า เพิ่งเปิด. exe คลิก "เพิ่มไบนารีหรือทรัพยากรรูปภาพ" เปิดไฟล์. ico และบันทึก
endolith
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.