Windows में, mingw की gcc का उपयोग करते हुए, क्या यह निर्दिष्ट करने के लिए कि आउटपुट exe फ़ाइल एक आइकन फ़ाइल लेने के लिए है, ताकि exe फ़ाइल एक्सप्लोरर में उस आइकन के साथ दिखाई दे?
Windows में, mingw की gcc का उपयोग करते हुए, क्या यह निर्दिष्ट करने के लिए कि आउटपुट exe फ़ाइल एक आइकन फ़ाइल लेने के लिए है, ताकि exe फ़ाइल एक्सप्लोरर में उस आइकन के साथ दिखाई दे?
जवाबों:
आपको पहले आइकन बनाने की आवश्यकता है। फिर आपको नीचे दी गई सामग्री के साथ एक आरसी फ़ाइल बनाने की आवश्यकता है। यहाँ हम इसे नाम देंगे my.rc।
id ICON "path/to/my.ico"
idउपरोक्त आदेश में उल्लेख किया है काफी कुछ भी हो सकता है। जब तक आप इसे अपने कोड में संदर्भित नहीं करना चाहते तब तक कोई फर्क नहीं पड़ता। फिर विंडस को इस प्रकार चलाएं:
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
ध्यान दें, लैंगिड यूके इंग्लिश के लिए है (जो कि ऑस्ट्रेलिया के सबसे नज़दीकी स्थानीयकरण है। मैं पहचान सकता हूं।) यदि आप यूएस "इंग्लिश" चाहते हैं तो BLOCK
लाइन को इसमें बदल दें:
BLOCK "040904E4"
और अनुवाद लाइन:
VALUE "Translation", 0x409, 1252
जानकारी के लिए VERSIONINFO संसाधन देखें ।
VALUE "Translation", 0x409, 1252, 0x809, 1252 को मिलाकर किया गया है , उदाहरण के लिए: msdn.microsoft.com/en-us/ के अनुसार US और UK दोनों इंग्लिश को सक्षम करेगा। पुस्तकालय / aa381058.aspx । यह आपको यह भी बताता है कि आप एक से अधिक 'ब्लॉक "lang04E4" शामिल कर सकते हैं
IconsExtractएक जरूरत में एक आइकन एम्बेडेड पाने के लिए Nirsoft की मुफ्त उपयोगिता का उपयोग करता था exe।
RC फाइल में, nameID का नाम होना भी जरूरी नहीं है, यह सिर्फ एक पूर्णांक हो सकता है। फ़ाइल नाम उद्धृत किया जाना चाहिए, बशर्ते यह वही स्थान शामिल हैं। के बजाय:
windres my.rc -O coff -o my.res
आप उपयोग कर सकते हैं:
windres my.rc my.o
my.oMinGW के साथ g++के बाद windres my.rc my.o(कुछ WinMainसंबंधित त्रुटि संदेश), लेकिन windres my.rc -O coff -o my.resपथ ठीक काम किया।
.o(= COFF स्वचालित रूप से; मैं इसे my.res.oस्पष्टता के लिए पसंद करता हूं) मेरे लिए काम करता है। वास्तव में .resMSVC द्वारा निर्मित फ़ाइलों का एक अलग स्वरूप होता है, इसलिए यह COFF.res
संसाधन हैकर का प्रयास करें। मैं लिनक्स (WSL) में अपने प्रोजेक्ट को संकलित करने में सक्षम था और होमपेज पर लोगो से एक आइकन उत्पन्न कर सकता था। बस इसे exe में एम्बेड करने के लिए एक सरल तरीके की आवश्यकता थी और इस कार्यक्रम ने बहुत अच्छा काम किया। एंगस जॉनसन द्वारा रिसोर्स हैकर