निर्माण प्रक्रिया के दौरान संकलक कोड को एक अस्थायी प्रारूप में अनुवाद करता है, चलिए इसे ऑब्जेक्ट फ़ाइल कहते हैं। ऑब्जेक्ट फ़ाइल में, प्रतीकों की एक सूची है जो संकलक हल नहीं कर सका, आमतौर पर अन्यत्र परिभाषाएं। लिंकिंग चरण इन प्रतीकों को हल करने का प्रभारी है।
निर्माण प्रक्रिया लिंकर को फ़ाइलों को तब तक फ़ीड करती है जब तक कि सभी प्रतीकों का समाधान नहीं हो जाता। कोई भौतिक निर्भरता सूचियां नहीं हैं, केवल हल करने के लिए प्रतीकों की सूचियां हैं। यह विभिन्न पुस्तकालयों का उपयोग करके प्रतीकों को हल करने की अनुमति देता है। उदाहरण के लिए, कोई Windows विशिष्ट समस्याओं के लिए Windows लाइब्रेरी का उपयोग करना चाह सकता है; लिनक्स विशिष्ट मुद्दों के लिए एक लिनक्स लाइब्रेरी। यह स्पष्ट रूप से यह नहीं बताता है कि एक प्रोग्राम विंडोज पुस्तकालय पर निर्भर है; यह लिनक्स पर भी निर्भर हो सकता है।
कुछ कंपाइलर आमतौर पर निर्माण प्रक्रिया में उपयोग के लिए निर्भरता सूचियां उत्पन्न कर सकते हैं। हालांकि, अंतिम जिम्मेदारी प्रोग्रामर तक है।
स्रोत
2011-10-20 20:45:08
यदि मैं नहीं चाहता कि परिणामस्वरूप निष्पादन योग्य बोझ हो, तो मैं क्या कर सकता हूं? – jmasterx
@ मिलो: आप libSomthing की निर्भरताओं के स्थिर पुस्तकालयों को libA में लिंक कर सकते हैं। –
@ मिलो: यानी आप कोई साझा निर्भरता नहीं चाहते हैं? तो आपको केवल स्थिर पुस्तकालयों का उपयोग करके, सबकुछ स्थिर रूप से लिंक करना होगा। इसका परिणाम किसी भी निर्भरता के साथ एक बड़ा आत्मनिर्भर निष्पादन योग्य होगा। लेकिन चेतावनी दी जानी चाहिए, कुछ पुस्तकालयों को स्थैतिक लोगों के रूप में बनाना मुश्किल है। – vines