से साझा ऑब्जेक्ट में प्रतीक छुपाएं। मेरे पास दो तृतीय-पक्ष पुस्तकालयों में कभी-कभी समान प्रतीक नाम निर्यात होता है। जब निष्पादन योग्य लोड होता है, ld आमतौर पर गलत चुनता है और परिणामस्वरूप क्रैश हो रहा है। मैं इन पुस्तकालयों की सामग्री के बारे में बहुत कुछ नहीं कर सकता, इसलिए ld को उचित अनुकरण कैसे प्राप्त करें, निर्देश देने का कोई तरीका हो सकता है?एलडी
ओएस - Solaris 10, मेरे कार्यक्रम autoconf/autotools/जीसीसी द्वारा बनाया गया है, परस्पर विरोधी पुस्तकालयों libclntsh और OpenLDAP (Oracle चालक का हिस्सा) कर रहे हैं। असुविधाजनक रूप से, मैं ओरेकल के एलडीएपी क्लाइंट के कार्यान्वयन का उपयोग नहीं कर सकता - इसमें ओपनएलडीएपी की कई विशेषताएं हैं।
संपादित: लिंकेज निम्नलिखित है: libclntsh.so-> A.so-> मुख्य < -B.so < -libldap_r.so
हाय दिमित्री। [मेरा प्रश्न] देखें (http://stackoverflow.com/questions/9909528/how-can-i-remove-a-symbol-from-a-shared-object)। जाहिर है, आप साझा ऑब्जेक्ट के प्रतीकों को हटाने के लिए ['objcopy -N foo'] (http://linux.about.com/library/cmd/blcmdl1_objcopy.htm) का उपयोग कर सकते हैं। –