2013-05-19 8 views
5

से संबंधित हैं, मैंने इन तीन फ़ाइलों को ड्राइवर पुस्तकालयों में देखा है। संबंधित तीन फाइलें कैसे हैं, ऑर्डर क्या है जिसमें फाइल संकलित की जाती है और प्रत्येक फ़ाइल की सामग्री क्या होती है? इसके अलावा मैंने यह भी देखा है। ए फाइलें वे .lib के समान हैं?शीर्षलेख फ़ाइल (.h), लाइब्रेरी फ़ाइल (.lib) और DLL (.dll) फ़ाइलें

+0

आपके कोड में हेडर हैं। एच और स्रोत फ़ाइलें (.c/.cpp)। हेडर कोड के टुकड़े होते हैं जिन्हें प्रत्येक बार कॉपी/चिपकाया जाता है जब आप उन्हें अपनी स्रोत फ़ाइल में शामिल करते हैं। जब कोड संकलित किया जाता है, तो संकलक स्रोत फ़ाइलों को ऑब्जेक्ट फ़ाइलों (.o या .obj) के रूप में आउटपुट करता है। ए। एलआईबी फ़ाइल बस एक संग्रह है जिसमें सभी ऑब्जेक्ट फ़ाइलें शामिल हैं। डीएलएल पुस्तकालय संकलित कोड है जिसमें निर्यात किए गए कार्यों का एक गुच्छा है जिसे आप अपने कोड में पुन: उपयोग कर सकते हैं। एक .exe संकलित कोड है जो स्टार्ट-अप पर मुख्य() फ़ंक्शन को कॉल करता है। –

उत्तर

4

उदारीकरण और .dll फ़ाइलें, एक Windows पुस्तकालय (ओ या .obj फ़ाइलें) की निष्पादनयोग्य के दोनों कंटेनर हैं पूर्व (उदारीकरण) युक्त सामान (काम करता है, परिभाषाओं, आदि) आप के लिए है कि साथ अपनी परियोजना की निष्पादन योग्य फ़ाइल के लिए स्थैतिक रूप से लिंक करें। उत्तरार्द्ध (.dll) या तो आपके सिस्टम में पहले से मौजूद है या आप इसे अपने सिस्टम में डालते हैं, और यह गतिशील रूप से आपके प्रोजेक्ट की निष्पादन योग्य फ़ाइल से जुड़ा हुआ है।

यूनिक्स/लिनक्स सिस्टम के लिए, फ़ाइल-एक्सटेंशन क्रमशः .a और .so हैं (यानी, .lib के बजाय .a, और .so के बजाय .so)।

सभी मामलों में, जब अपनी परियोजना संकलन आप #include एक या पुस्तकालय आप (वे हेडर फाइल कहा जाता है) का उपयोग कर रहे द्वारा आपको दिए गए ज फ़ाइलों की अधिक, कि है, क्योंकि चाहिए जहां सामान निष्पादनयोग्य अंदर लाइब्रेरी का परिभाषित किया गया है।

संपादित

एक स्थिर जुड़ा हुआ पुस्तकालय का मुख्य लाभ यह आत्म निहित (कोई बाहरी निर्भरता) है, लेकिन यह अपने स्वयं के निष्पादन योग्य फ़ाइल का आकार बढ़ जाता है। मुख्य नुकसान यह है कि भविष्य के संस्करणों को फिर से संकलित और पुनः वितरित किया जाना चाहिए।

गतिशील रूप से जुड़े पुस्तकालयों के लिए, हम केवल अद्यतन लाइब्रेरी निष्पादन योग्य पुनः वितरित करते हैं। मुख्य नुकसान यह है कि हमारा कार्यक्रम ग्राहक के सिस्टम पर पहले से स्थापित लाइब्रेरी पर निर्भर करता है।

+0

यह ध्यान दिया जाना चाहिए कि कुछ भी है जिसे "आयात लाइब्रेरी" कहा जाता है http://stackoverflow.com/questions/3573475/how-does-the-import-library-work- विवरण –

संबंधित मुद्दे