आपके पास संकलित निष्पादन योग्य कोड के बारे में कुछ मौलिक गलतफहमी हैं। निम्नलिखित एम्बेडेड और डेस्कटॉप सिस्टम पर लागू होता है।
शीर्षलेख फ़ाइलें किसी अन्य की तरह स्रोत फ़ाइल से अधिक नहीं हैं। अंतर यह है कि उन्हें सीधे संकलित करने के बजाय प्री-प्रोसेसर द्वारा संकलन इकाई में डाला जाता है। इसके अलावा ज्यादातर मामलों में उनमें केवल घोषणात्मक बयान होते हैं, और आम तौर पर निष्पादन योग्य निर्देशों या संग्रहीत डेटा के अर्थ में जेनरेट कोड में योगदान नहीं करते हैं।
रनटाइम आपके स्रोत कोड के लक्ष्य पर मौजूद होना आवश्यक है; यह आपके स्रोत से देशी निष्पादन योग्य मशीन कोड उत्पन्न करने के लिए कंपाइलर का काम है। यह मशीन कोड है जो लक्ष्य पर संग्रहीत और चलाया जाता है।
एक हेडर फ़ाइल लाइब्रेरी जैसी ही नहीं है। यह केवल (आमतौर पर) लाइब्रेरी सामग्री की घोषणा (फ़ंक्शन प्रोटोटाइप और अन्य प्रतीक घोषणाएं जैसे कि स्थिरांक, डेटा, मैक्रोज़, अंकन)। लाइब्रेरी संयुक्त संग्रह में संग्रहीत पूर्व-संकलित/एकत्रित ऑब्जेक्ट कोड का रूप लेती है। यह आपके स्वयं के स्रोत के संकलन से उत्पन्न ऑब्जेक्ट कोड के साथ आवश्यक लाइब्रेरी कोड को गठबंधन करने के लिए लिंकर का काम है। यह इस लिंक किए गए निष्पादन योग्य है जिसे लक्ष्य पर संग्रहीत और निष्पादित किया गया है, मूल स्रोत कोड नहीं।
घोषणात्मक कोड वाले हेडर फ़ाइलों के संबंध में एक अपवाद तब होता है जब उनमें मैक्रो में इन-लाइन कोड या निष्पादन योग्य कोड होता है। हालांकि अगर इस एप्लिकेशन द्वारा स्पष्ट रूप से बुलाया जाता है तो इस तरह के कोड में केवल आपके आवेदन में जगह होती है।
जब लाइब्रेरी कोड लिंक किया जाता है, तो केवल उन लाइब्रेरी ऑब्जेक्ट कोड घटकों को एप्लिकेशन कोड में संदर्भों को हल करने के लिए आवश्यक होते हैं, पूरी लाइब्रेरी नहीं (जब तक कि संपूर्ण लाइब्रेरी केवल एक ऑब्जेक्ट फ़ाइल से बना न हो)।
वे पुस्तकालय नहीं हैं। –
वे क्या हैं? – MrGigu
वे हेडर फाइलें हैं। –