मुझे 64 बिट कर्नेल चलाने वाली 32 बिट tinycore64 प्रणाली को remastering करते समय मुझे एक ही समस्या का सामना करना पड़ा है।
अधिक खोज के बाद, मैंने पाया है कि इन टिप्पणियों में से दोनों को क्यों समझदारी होगी। ।
"यह अच्छा होगा, लेकिन - कम से कम मेरी वातावरण में - यह काम करने के लिए प्रकट नहीं किया था लोडर शिकायत की थी, यह बस पुस्तकालयों कि बिट सत्ता से मेल नहीं खाते को छोड़ नहीं किया। अफसोस की बात है!" - struppi
"यह बहुत अजीब है, क्या आप वर्णन कर सकते हैं कि चीजें कैसे विफल हुईं? इसके अलावा, शायद ldd के आउटपुट को पोस्ट करें?" - एडम गूदे
और यह टिप्पणी क्यों सच साबित हो सकती है लेकिन वास्तव में गलत है।
लिंकर उन पुस्तकालयों को अनदेखा कर देगा जो इसे पढ़ नहीं सकते हैं।
यह लिंक शेड पर कुछ प्रकाश है। http://www.markusbe.com/2009/09/about-running-32-bit-programs-on-64-bit-ubuntu-and-shared-libraries/
और अधिक बिंदु पर, आपको ld.so manpage प्रबुद्धता मिल जाएगी।
यह पता चला है कि रनटाइम लिंकर ld.so लाइब्रेरी लोड होने के रूप में चुनने में पथ का नाम बदल सकता है। मेरे 64 बिट लिनक्स सिस्टम पर मेरे पास मानक वाले के अलावा विषम निर्देशिका नामों की एक श्रृंखला है। जैसे/Lib/x86_64-linux-gnu। मैंने वास्तव में सोचा कि मैं पुस्तकालयों को उस पथ में/lib64 पर ले जाकर प्रयोग करूंगा। जब मैंने ऐसा किया, तो क्या हुआ? अचानक मेरे 64 बिट ऐप (इस मामले में ब्रक्टल) काम नहीं किया और "गलत ईएलएफ कक्षा" के साथ शिकायत की। हैलो ... अब हम कुछ पर हैं।
अब मैं 100% निश्चित नहीं हूं लेकिन कुंजी आरपीएथ टोकन विस्तार से संबंधित प्रतीत होती है। मुझे संदेह है कि $ {PLATFORM} विस्तार के साथ कुछ करने के लिए हो सकता है। और x86_64 नाम का हिस्सा होना चाहिए।
किसी भी मामले में, मैंने पाया कि जब मैंने अपनी 64-बिट पुस्तकालयों को लाइब्रेरी पथों में x86_64-linux-gnu नाम दिया है, तो बस lib64 के लिए अपील की गई है, तो उन्हें 32 बिट वाले लोगों और चीजों को काम करने के लिए प्राथमिकता दी गई थी।
अपने मामले में, शायद आप 64 बिट पर 32 बिट पुस्तकालयों के लिए कुछ समान करना चाहते हैं। I386-linux-gnu आज़माएं।
mkdir /lib/x86_64-linux-gnu/
mkdir /usr/lib/x86_64-linux-gnu/
ln -s /lib/x86_64-linux-gnu /lib64
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
64 बिट रास्तों और 32 बिट/lib & के लिए 32 बिट पुस्तकालयों के लिए अपने 64 बिट पुस्तकालयों जोड़ें:
मेरे मामले जहां मैं एक 32 बिट userland पर 64 बिट साझा पुस्तकालयों को स्थापित करने से कर रहा हूँ में
तो, मैं निम्नलिखित पथ बनाया/usr/lib पथ केवल।
फिर ld.so.conf पर 64 बिट विशिष्ट पथ जोड़ें और ldconfig के साथ अपने कैश को अपडेट करें अब आपके 32-बिट & 64-बिट अनुप्रयोग निर्बाध रूप से चलेंगे।
आप अपने निर्माण को बनाए रखने के लिए क्या उपयोग कर रहे हैं? मेकफ़ाइल? –
हां, मेकफ़ाइल। – struppi