से अप्रतिबंधित, स्थैतिक सी ++ ऑब्जेक्ट्स को लिंक करने के लिए जीसीसी को कैसे मजबूर किया जाए, मैं एक सी ++ लाइब्रेरी का उपयोग कर रहा हूं जिसे साझा या स्थिर लाइब्रेरी के रूप में बनाया जा सकता है। यह लाइब्रेरी एक फैक्ट्री तकनीक का उपयोग करती है, जहां प्रोग्राम शुरू होने पर स्थैतिक वस्तुएं स्वयं पंजीकृत होती हैं और स्थैतिक वस्तुएं बनती हैं।लाइब्रेरी
यह तब तक काम करता है जब तक साझा लाइब्रेरी का उपयोग नहीं किया जाता है। जब स्थिर संस्करण का उपयोग किया जाता है, तो किसी भी स्थिर वस्तु को अंतिम कार्यक्रम में शामिल नहीं किया जाता है (क्योंकि उन्हें सीधे संदर्भित नहीं किया जाता है) और इस प्रकार उनकी कार्यक्षमता उपलब्ध नहीं है।
क्या लिंकिंग करते समय लाइब्रेरी से सभी स्थैतिक वस्तुओं को शामिल करने के लिए जीसीसी को मजबूर करने का कोई तरीका है?
लाइब्रेरी ओपन सोर्स है और यदि यह मदद करता है, तो मैं इसे संशोधित कर सकता हूं।
-Wl, - पूरे संग्रह में कई प्रतीकों को शामिल करने का कारण बनता है जो पहले से ही अन्य पुस्तकालयों या कुछ हल किए जा सकते हैं जिन्हें हल नहीं किया जा सकता है। क्या सांख्यिकी को शामिल करने के लिए एक और बढ़िया तरीका है? –
यह समझ में नहीं आता जीन: यह साझा लाइब्रेरी लोड करने जैसा ही है: आपको पूरी लाइब्रेरी मिलती है, और कुछ भी नहीं। माना जाता है कि बाहरी संदर्भों को खोजने के लिए एलडी की खराब धारणा है, इसलिए आपको चीजों का सही अधिकार प्राप्त करने की आवश्यकता है। – Yttrill
'-ब्लूएल, - नो-ऑल-आर्काइव' के साथ व्यवहार को बंद करना वास्तव में वैकल्पिक नहीं है, भले ही आपके पास शामिल करने के लिए कोई और पुस्तकालय न हो। जीसीसी आपके कमांड के अंत में सभी मानक सिस्टम लाइब्रेरी जोड़ देगा, इसलिए यदि आप '- व्हाहोल-आर्काइव' छोड़ देते हैं तो वे सभी इससे प्रभावित होंगे और इससे डुप्लिकेट प्रतीक समस्या @GeneVincent ने –