मैंने ऑब्जेक्ट एएस साझा किया है जो स्थिर रूप से libssl.a & से जुड़ा हुआ है और एक अन्य साझा ऑब्जेक्ट बीएसओ जो स्थिर रूप से libssl.a को लिंक करता है।स्टेटिक लाइब्रेरी दो बार लोड की गई
एएसओ & बीएसओ ग्लोबल स्कोप में libssl.a से प्रतीकों का प्रतीक है। मैंने इसे पढ़ा है- एएस
मेरे पास एक निष्पादन योग्य है। जो एएसओ और बीएसओ लोड करता है। जब A.out समाप्त हो जाता है तो मुझे एएसओ में libssl.a के प्रतीकों में से एक में डबल फ्री त्रुटि मिलती है।
भले ही libssl.a प्रत्येक साझा ऑब्जेक्ट से स्थिर रूप से जुड़ा हुआ है, क्योंकि वैश्विक स्तर पर का खुलासा किया गया है, यह संभव है कि यह उसी स्थानीय प्रतीक को चुनने के बजाय साझा किया जाए।
यह क्या काम है? यहां प्रतीकों को स्थानीय कैसे बनाया जाए?
कृपया
मैं आपके सिद्धांत की पुष्टि करने के लिए एक डीबगर का उपयोग करने की सलाह दूंगा। – jdigital
क्या आप विस्तारित कर सकते हैं? – KodeWarrior
बस एक छोटी सी बात, क्योंकि मुझे नहीं पता कि इसे अपनी स्थिति में कैसे लागू किया जाए: 'dlopen' में एक RTLD_LOCAL ध्वज है जो कुछ परिस्थितियों में वास्तव में इस स्थिति में मदद करेगा। तो यदि आपने उन पुस्तकालयों को 'डलोपेन' के साथ खोला है, तो शायद उन्हें हस्तक्षेप नहीं करना चाहिए। – liori