मैंने साझा पुस्तकालयों के आधार पर ऐप्स के साथ असफल होने पर ध्यान दिया है: यदि आप कुछ निर्भरता खो रहे हैं, तो ऐप लोड समय पर असफल हो जाएगा, भले ही उपयोगकर्ता की निर्भरता की कार्यक्षमता का उपयोग करने का कोई इरादा न हो।वैकल्पिक साझा पुस्तकालय
मैं चाहता हूं कि मेरे ऐप्स इससे बेहतर हों। आदर्श रूप में, बल्कि वितरित से n विभिन्न संकुल, जहां एन = numberOfSupportedArchitectures * numberOfSupportedOS * Π (प्रत्येक शेयर की गई लाइब्रेरी के लिए) (विकल्प की संख्या) मैं ", जबकि साझा पुस्तकालयों लोड हो रहा है त्रुटि" एक पकड़ने था अपवाद उत्सर्जित के रूप में कई लोड समय पर जब लाइब्रेरी मैं चाहूंगा- लेकिन इसकी आवश्यकता नहीं है- अनुपस्थित पाया जाता है, फिर इस तरह निष्पादन जारी रखें जो संबंधित अनसुलझे लिंक का उपयोग से बचाता है। लेकिन जाहिर है कि कोई अपवाद नहीं हो सकता है। अगर कुछ गुम हो जाता है, तो यह सब मुख्य() शुरू होने से पहले गिर जाता है।
लोडिंग प्रक्रिया पर नियंत्रण रखने के लिए सबसे नज़दीक मैं अपने सभी लिंक को dlopen, dlsym और ऐसे के साथ हल कर रहा हूं। इतना थकाऊ मुझे उम्मीद है कि मेरे लिए ऐसा करने के लिए पहले से ही एक लाइब्रेरी उपलब्ध होगी?
मुझे लगता है कि यह स्रोत आधारित डिस्ट्रो और न ही विंडोज़ पर कोई मुद्दा नहीं होगा। मैं टैग में बाइनरी-पैकेज डालने जा रहा था लेकिन स्पष्ट रूप से मेरे पास सिक्का टैग का प्रतिनिधि नहीं है।
'ऐसा लगता है कि ओएस के लोडर/लिंकर्स के व्यवहार को परिष्कृत करने में सबसे सुंदर समाधान होगा।
या प्रोग्राम को एक स्क्रिप्ट के माध्यम से चलाएं जो पर्यावरण चर 'LD_LIBRARY_PATH' सेट करता है। – rodrigo
लाइब्रेरी को लोड करने के विकल्प केवल चीज़ के अलग-अलग संस्करण नहीं हैं, उनके पास पूरी तरह से अलग इंटरफ़ेस होंगे, या वे पूरी तरह से अनुपस्थित होंगे और वे जो कार्यक्षमता प्रदान करेंगे वे केवल यूएक्स में प्रकट नहीं होंगे। हालांकि यह अनुपस्थित पुस्तकालयों को संभालने के लिए एक एवेन्यू प्रदान कर सकता है; मैं लापता लक्ष्यों के समान इंटरफेस के साथ निष्क्रिय शिल पुस्तकालयों को बना सकता हूं, जहां लक्ष्य गुम हो जाना चाहिए, वे कुछ से जोड़ने के लिए लिंकर की आवश्यकता को पूरा कर सकते हैं। यद्यपि मूर्खतापूर्ण लगता है। – mako