मेरे पास एक ऐसा प्रोग्राम है जो प्लगइन सिस्टम को कुछ प्लगइन_नाम.एसओ (सामान्य रूप से) से गतिशील रूप से लोड करके कार्यान्वित करता है।जीसीसी/लिनक्स: एक स्थिर पुस्तकालय को .so में जोड़ना?
लेकिन बदले में मेरे पास एक स्थिर "सहायक" लाइब्रेरी है (इसे इसे हेल्पर.ए कहते हैं) जिनके कार्यों का उपयोग मुख्य कार्यक्रम और प्लगइन में मुख्य कार्य दोनों से किया जाता है। उन्हें किसी भी तरह से इंटर-ऑपरेट करने की ज़रूरत नहीं है, वे टेक्स्ट मैनिपुलेशन के लिए केवल सहायक कार्य हैं।
यह प्रोग्राम, एक बार शुरू हुआ, पुनः लोड या पुनरारंभ नहीं किया जा सकता है, इसलिए मैं मुख्य कार्यक्रम से नहीं, प्लगइन से नई "सहायक" कार्यक्षमता प्राप्त करने की उम्मीद कर रहा हूं।
तो मेरी खोज है .. क्या मुख्य कार्यक्रम की तुलना में "सहायक" के एक अलग (शायद नए) संस्करण का उपयोग करने के लिए एसएसओ में "प्लगइन फ़ंक्शन कोड" को मजबूर करना संभव है?
यह कैसे किया जा सकता है? शायद plugically_name.so पर स्थिर रूप से जोड़ने या अन्यथा helper.a जोड़कर?
मैं यह जोड़ना चाहता हूं कि मैं मुख्य प्रोग्राम से नई सहायक लाइब्रेरी का उपयोग नहीं करना चाहता हूं या उम्मीद करता हूं .. मैं बस एक नई/बेहतर सहायक लाइब्रेरी के साथ प्रत्येक नई प्लगइन को लिंक करना चाहता हूं। – conejoroy
क्या कोई कारण है कि आप सहायक फ़ंक्शन के लिए डायनामिक लिंकिंग का उपयोग क्यों नहीं कर सकते? –
एक बार शुरू हुआ, मुख्य प्रोग्राम निष्पादन को रोक नहीं सकता है, यहां तक कि एक नया सहायक भी पुनः लोड करने के लिए .. और प्रोग्राम को केवल बहुत ही बुनियादी सहायक कार्यक्षमता की आवश्यकता है क्योंकि यह प्लगइन के लिए केवल प्लेसहोल्डर है। इसलिए यदि मैं एक नई/बेहतर या विस्तारित सहायक लाइब्रेरी है तो मैं पूरी प्लगइन को फिर से संकलित करना पसंद करता हूं। मुझे लगता है कि दो से भी एक .so (प्लगइन) वितरित करना अधिक व्यावहारिक है। इसलिए (प्लगइन और प्लगइन का उपयोग करने वाला सबसे अद्यतित सहायक) – conejoroy