मैं किसी तृतीय पक्ष लाइब्रेरी का उपयोग करके कुछ काम शुरू कर रहा हूं और इसे विजुअल स्टूडियो 2010 में बनाते समय, मैंने देखा कि मुझे यह लिंकर चेतावनी कई बार प्राप्त हो रही थी (LNK4221)। मैंने उन ऑब्जेक्ट फ़ाइलों को बनाने में प्रयुक्त स्रोतों को देखा जो लिंक किए जा रहे थे और पाया कि इनके लिए सभी कार्यान्वयन हेडर फ़ाइलों में स्थित है। दिलचस्प बात यह है कि मैंने यह भी देखा कि इस परियोजना में संबंधित .cpp फाइलें शामिल हैं जिनमें केवल कार्यान्वयन के साथ शीर्षलेख के लिए शामिल है।एक .cpp फ़ाइल का बिंदु क्या है जिसमें केवल एक # शामिल है?
मैं उत्सुक हूं - इसका क्या मतलब है और मैं इस तकनीक का उपयोग क्यों करना चाहूंगा? यदि .cpp फ़ाइलें प्रोजेक्ट में कोई मान नहीं जोड़ रही हैं, तो लिंकर चेतावनियों से छुटकारा पाने के लिए मुझे उन्हें क्यों नहीं हटाया जाना चाहिए?
मैंने इसी तरह के प्रश्नों की खोज करने की कोशिश की, लेकिन रुचि के कुछ भी नहीं मिला। यदि आप किसी के बारे में जानते हैं, तो कृपया उन्हें लिंक करें।
यह एक चेतावनी है, कोई त्रुटि नहीं। –
हाँ, मुझे पता है। मैं केवल एक एकल # शामिल सहित .cpp फ़ाइलों का उपयोग करने की तकनीक की तुलना में चेतावनी के बारे में चिंतित हूं। –
दो संभावित प्रेरणा: 1 - हमेशा '.h' /' .cpp' जोड़े रखने के लिए अच्छा अभ्यास माना जा सकता है। शायद लेखक ने सोचा कि वे बाद में '.cpp' में जोड़ देंगे। 2 - एक '.h' फ़ाइल किसी ऑब्जेक्ट फ़ाइल में संकलित नहीं की जा सकती है, एक' .cpp' फ़ाइल कर सकते हैं। – BoBTFish