libstdc ++ ..6। साझा की गई फ़ाइल को नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं


92

मैं एक cilk ++ प्रोग्राम के साथ Cilkscreen कमांड चलाना चाहता हूं, लेकिन मुझे यह त्रुटि मिली

/usr/local/cilk/bin/../lib32/pinbin: साझा लाइब्रेरी लोड करते समय त्रुटि: libstdc ++। इसलिए.6 साझा की गई फ़ाइल को नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं।

कृपया क्या आप मेरी मदद कर सकते हैं

जवाबों:


220

इसे इस्तेमाल करे:

apt-get install lib32stdc++6

6
यह ia32-lib (ट्रायन द्वारा प्रस्तावित) को स्थापित करने से बहुत बेहतर है। ऐसा करते हुए, मुझे 1 या 2 अन्य निर्भरताएं स्थापित करनी थीं, जबकि ia32-lib में 267 MB डिस्क स्थान के साथ 241 निर्भरताएं हैं।
माइक

1
यह स्व-निष्कर्षण कार्यक्रम के परीक्षण के लिए Microsoft विंडोज आभासी उपकरणों को चलाने के लिए भी काम करता है। धन्यवाद!
चार्ल्स एंगेल्के

4
@ टैकिट 64 बिट मशीन के लिए, क्या हमें lib64stdc++6इसके बजाय स्थापित करना चाहिए ?
boddhisattva

@boddhisattva मुझे लगता lib32stdc++6है कि 32 बिट सॉफ्टवेयर चलाने वाली 64 बिट मशीन के लिए है। "संगतता परत" के समान कुछ। 64 बिट मशीन पर 64 बिट ("देशी") सॉफ्टवेयर चलाने के लिए आपको बस जरूरत है libstdc++6। (लिंक उबंटू 14.04 भरोसेमंद तहर के लिए हैं; मैं उबंटू 10.10 मेवरिक मीरकैट के लिए लिंक नहीं ढूंढ सकता।)
फ्रैंकलिन यू

बहुत बढ़िया, हालाँकि मुझे यह समस्या एक अलग स्थिति में मिली जहाँ मैं एंड्रॉइड सोर्स कोड बनाने की कोशिश करता हूँ, लेकिन इसने समस्या का पूरी तरह पता लगा लिया। बहुत बहुत धन्यवाद !!! ls
ऑस्कर झोउ 989

15

मुझे लगता है कि आप एक amd64 मशीन पर लिनक्स चला रहे हैं। आपके निष्पादन योग्य फ़ोल्डर में रहता है ( lib32) 32-बिट निष्पादन योग्य का सुझाव देता है जिसमें 32-बिट पुस्तकालयों की आवश्यकता होती है।

ये आपके सिस्टम पर मौजूद नहीं हैं, इसलिए आपको इन्हें मैन्युअल रूप से इंस्टॉल करने की आवश्यकता है। पैकेज का नाम आपके वितरण पर निर्भर करता है, डेबियन इट के लिए ia32-libs, फेडोरा के लिए libstdc++.<version>.i686


मैं उबंटू 10.10 पर लिनक्स चल रहा हूँ
ammouna

फिर आप इसे डेबियन तरीके से करना चाहते हैं और ia32-libsउस सॉफ़्टवेयर के 64-बिट संस्करण में इंस्टॉल या स्विच करना चाहते हैं जिसे आप उपयोग करना चाहते हैं।
फेबियन नॉर

मैं इस पैकेज को स्थापित किया गया था, लेकिन अब मुझे एक और त्रुटि मिली "सिग्नल द्वारा -7 ई प्रक्रिया द्वारा मार डाला गया प्रक्रिया: संलग्न करने के लिए pid 3874 विफल: ऑपरेशन की अनुमति नहीं"
amunouna

ऐसा लगता है कि आप 64-बिट डिबगर / मॉनिटर को 32-बिट एप्लिकेशन या इसके विपरीत में संलग्न करने का प्रयास कर रहे हैं? आपको वास्तव में 64-बिट घटकों को प्राप्त करने और 64-बिट निष्पादन योग्य बनाने का प्रयास करना चाहिए; इससे जीवन बहुत आसान हो जाएगा।
फेबियन नॉर

1
मैं यह कैसे कर सकता हूँ ? मैं एक लिनक्स शुरुआती हूं और मैं आपको अच्छी तरह से नहीं समझता कि 64-बिट डिबगर / मॉनिटर को 32-बिट्स एप्लिकेशन ओवी / एस में कैसे संलग्न किया जाए। क्या आप यह समझा सकते हैं कि कृपया
ammouna

9

फेडोरा उपयोग के लिए:

yum install libstdc++44.i686

आप यह पता लगा सकते हैं कि कौन से संस्करण चलकर समर्थित हैं:

yum list all | grep libstdc | grep i686



1

/usr/local/cilk/bin/../lib32/pinbin गतिशील रूप से लाइब्रेरी libstdc ++ से जुड़ा हुआ है। इसलिए.6 जो अभी मौजूद नहीं है। आपको Cilk को recompile करने की आवश्यकता है


लेकिन libstdc ++। इसलिए ..6 / usr / lib फ़ोल्डर में मौजूद है
ammouna

1
हां, लेकिन जैसा कि यह 32-बिट अनुप्रयोग है, इसके लिए आवश्यक है /usr/lib32/libstdc++.so.6
फाबियान नॉर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.