मुझे C ++ प्रोग्राम के संकलन में कुछ कठिनाई हो रही है जो मैंने लिखा है।
यह कार्यक्रम बहुत ही सरल है और, मेरी जानकारी के अनुसार, C ++ मानक में उल्लिखित सभी नियमों के अनुरूप है। मैंने ISO / IEC 14882: 2003 की संपूर्णता को दो बार पढ़ा है सुनिश्चित करने के लिए।
कार्यक्रम इस प्रकार है:
इस कार्यक्रम को विजुअल C ++ 2010 के साथ संकलित करने का प्रयास करने पर मुझे प्राप्त होने वाला आउटपुट है:
c:\dev>cl /nologo helloworld.png
cl : Command line warning D9024 : unrecognized source file type 'helloworld.png', object file assumed
helloworld.png : fatal error LNK1107: invalid or corrupt file: cannot read at 0x5172
खारिज कर दिया, मैंने जी ++ 4.5.2 की कोशिश की, लेकिन यह समान रूप से अप्रभावी था:
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
मुझे लगा कि क्लैंग (संस्करण 3.0 ट्रंक 127530) को काम करना चाहिए, क्योंकि यह अपने मानकों के अनुरूप होने के लिए बहुत प्रशंसनीय है। दुर्भाग्यवश, इसने मुझे इसके सुंदर, हाइलाइट किए गए त्रुटि संदेशों में से एक भी नहीं दिया:
c:\dev>clang++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
clang++: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
सच कहूं तो, मुझे नहीं पता कि इनमें से कोई भी त्रुटि संदेश का क्या मतलब है।
कई अन्य C ++ प्रोग्रामों में .cpp एक्सटेंशन के साथ सोर्स फाइल्स होती हैं , इसलिए मुझे लगा कि शायद मुझे अपनी फाइल का नाम बदलने की जरूरत है। मैंने इसका नाम बदलकर helloworld.cpp कर दिया , लेकिन इससे कोई मदद नहीं मिली। मुझे लगता है कि क्लैंग में एक बहुत ही गंभीर बग है क्योंकि जब मैंने इसका उपयोग नामांकित कार्यक्रम को संकलित करने की कोशिश की, तो यह फ़्लिप हो गया, "84 चेतावनियां और 20 त्रुटियां उत्पन्न हुई"। और मेरे कंप्यूटर को बहुत बीप कर दिया!
मैंने यहाँ क्या गलत किया है? क्या मैंने C ++ मानक के कुछ महत्वपूर्ण हिस्से को याद किया है? या सभी तीन संकलक वास्तव में सिर्फ इतना टूट गए हैं कि वे इस सरल कार्यक्रम को संकलित नहीं कर सकते हैं?