आपका कोड संकलित करेगा लेकिन यह लिंकिंग त्रुटियां देगा।
संकलन दौरान संकलक केवल भाषा अर्थ विज्ञान की पुष्टि करने से वस्तु कोड में स्रोत कोड अनुवाद:
अपनी परियोजना के एक निष्पादन का निर्माण दो चरणों शामिल ।
लिंकिंग वास्तव में प्रतीकों की परिभाषाओं को देखता है और एकाधिक ऑब्जेक्ट फ़ाइलों (संकलन के दौरान बनाए गए) से निष्पादन योग्य बनाता है।
संकलक प्रत्येक अनुवाद इकाई (.cpp + हेडर फाइल) में स्रोत कोड को अलग से संकलित करता है और इसलिए यह मानता है कि परिभाषा किसी अन्य स्रोत फ़ाइल में मौजूद होना चाहिए। यह लिंकर है जो फ़ंक्शन परिभाषाओं के संदर्भ ढूंढने का प्रयास करता है, और इसलिए लापता परिभाषा लिंकर द्वारा रिपोर्ट की जाएगी।
ध्यान दें कि लिंकर केवल उन प्रतीकों जो अपने कार्यक्रम से उपयोग किया जाता है,
पूर्व के लिए लिंक करना होगा: आपके प्रोग्राम एक समारोह की घोषणा की है, तो कोई परिभाषा & तो कभी नहीं का उपयोग करता है प्रदान करता है/कहीं भी कॉल समारोह, लिंकर को उस पते पर कूदने के लिए कोड एम्बेड करने की आवश्यकता नहीं है जहां फ़ंक्शन के लिए ऑब्जेक्ट कोड किसी फंक्शन कॉल साइट पर रहता है।
इस तरह के एक परिदृश्य को देखते हुए लिंकर को फ़ंक्शन परिभाषा के लिए कभी भी देखने की आवश्यकता नहीं होगी। इसलिए कोड संकलित और लिंक होगा।
स्रोत
2012-02-09 11:26:03
आईएमएचओ, लिंकिंग त्रुटि तभी होगी जब लापता-परिभाषा वाले फ़ंक्शन का उपयोग स्पष्ट रूप से/स्पष्ट रूप से कहीं भी किया जा रहा हो। – fizzbuzz
@fizzbuzz: हाँ, संभोग। वह मूल मानदंड है। –
मुझे न तो कोई संकलन या लिंकिंग त्रुटि मिल रही है। बस जोड़ने के लिए मैं कहीं भी मस्ती का उपयोग नहीं कर रहा हूँ। कोड संकलित करता है और .lib फ़ाइल में ठीक से लिंक करता है। – akrohit