मैंने एक छोटा प्रोग्राम लिखा जिसके लिए libboost_filesystem, libboost_program_options और libcurl सहित कुछ पुस्तकालयों की आवश्यकता है।संकलित सी ++ प्रोग्राम किसी अन्य सिस्टम पर "साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता" हालांकि फ़ाइल मौजूद है
मैंने इसे अपने घर की मशीन पर संकलित किया और वहां परीक्षण करने के लिए काम पर अपने कंप्यूटर पर बाइनरी ली।
error while loading shared libraries:
libboost_filesystem.so.1.42.0: cannot
open shared object file
लेकिन जब मैं इस फ़ाइल के लिए खोज मैं देख रहा हूँ कि यह में मौजूद है:: /usr/lib/libboost_filesystem.so.1.42.0 जब मैं कार्यक्रम शुरू करने की कोशिश लेकिन वहाँ यह निम्न त्रुटि संदेश देता है
क्या मैंने अपने कार्यक्रम के संकलन/लिंकिंग के दौरान कुछ गलत किया? यदि हां, तो मुझे अन्य मशीनों पर काम करने के लिए क्या करना है?
मुझे अक्सर लगता है कि 'ldd' मुझे यह जानने में मदद कर सकता है कि क्या गलत है। 'Ldd।/Your_executable' क्या कहता है? –
आपने जो कहा है उससे, ऐसा लगता है कि यह काम करना चाहिए। एक 32 बिट बनाम 64 बिट संघर्ष हो सकता है। आर्किटेक्चर मैच की जांच करने के लिए 'फ़ाइल'/your_executable' और 'file/usr/lib/libboost_filesystem.so.1.42.0' चलाने का प्रयास करें :) –
वाह आप सही हैं। कार्यक्रम 32 बिट के रूप में बनाया गया है और लाइब्रेरी मौजूद 64 बिट – tyrondis