स्टेटिक पुस्तकालय जुड़े नहीं हैं। वे केवल ऑब्जेक्ट फाइलों (* .obj या * .o) का एक संग्रह हैं जो एक लाइब्रेरी फ़ाइल (जैसे टैर/ज़िप फ़ाइल की तरह) में एकत्रित होते हैं ताकि लिंकर के लिए आवश्यक प्रतीकों को ढूंढना आसान हो सके।
एक स्थैतिक lib उन कार्यों को कॉल कर सकता है जिन्हें परिभाषित नहीं किया गया है (लेकिन केवल हेडर फ़ाइल में घोषित किया गया है), क्योंकि यह केवल संकलित है। फिर जब आप एक स्थिर या डीएल को जोड़ते हैं जो स्थैतिक lib का उपयोग करता है तो आपको दूसरी लाइब्रेरी से लिंक करना होगा जो स्थिर lib से कहा जाता है लेकिन इसमें परिभाषित नहीं किया जाता है।
यदि आप लिंकर को अन्य पुस्तकालयों को स्वचालित रूप से लिंक करना चाहते हैं तो स्टीफन का सुझाव काम करेगा और बहुत प्रतिष्ठित पुस्तकालयों जैसे बूस्ट और स्ट्लपोर्ट द्वारा उपयोग किया जाएगा। ऐसा करने के लिए स्थिर लाइब्रेरी के लिए मुख्य हेडर फ़ाइल में प्रज्ञा डालें। आपको स्थिर पुस्तकालय और इसके आश्रितों को शामिल करना चाहिए।
हालांकि आईएमओ यह सुविधा वास्तव में लाइब्रेरी लेखकों के लिए है, जहां लाइब्रेरी सिस्टम लाइब्रेरी पथ में है, इसलिए लिंकर आसानी से इसे ढूंढ पाएगा। बूस्ट और स्ट्लपोर्ट के मामले में वे #define
एस के साथ परिभाषित विकल्पों के साथ समान पुस्तकालयों के एकाधिक संस्करण का समर्थन करने के लिए इस सुविधा का उपयोग करते हैं, जहां विभिन्न विकल्पों को लाइब्रेरी के विभिन्न संस्करणों को लिंक करने की आवश्यकता होती है। इसका अर्थ यह है कि उपयोगकर्ताओं को बढ़ावा देने के लिए कम से कम एक लाइब्रेरी के साथ लिंक कॉन्फ़िगर करने की संभावना कम होती है।
आवेदन कोड के लिए मेरी वरीयता स्पष्ट भागों को स्पष्ट रूप से लिंक करना है।
मैं मानता हूं कि आपको लाइब्रेरी निर्भरताओं से सावधान रहना चाहिए, लेकिन मुझे लगता है कि इस मामले में लोड लाइब्रेरी अधिक है।मुझे केवल प्लगइन प्रकार आर्किटेक्चर के लिए इसकी आवश्यकता है। – iain