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


10

मैं इस सवाल में जानकारी के अनुसार कार्यक्रम के साथ खराब हो गया । अब यह स्थापित है, लेकिन मैं यह नहीं पता लगा सकता कि इसे कैसे चलाया जाए। उबंटू के उसी संस्करण को चलाने वाले मित्र को इसे स्थापित करने के बाद शुरू करने में कोई समस्या नहीं थी।

यही मैंने किया है:

$ ./Psychonauts
./Psychonauts: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

इसलिए मैं आगे बढ़ा और:

$ sudo apt-get install libstdc++.so.6
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libstdc++.so.6
E: Couldn't find any package by regex 'libstdc++.so.6'

यह ध्यान दिया जाना चाहिए कि मैंने केवल कुछ दिनों पहले लिनक्स का उपयोग करना शुरू किया था।

ठीक है, इसलिए मैंने apt-file और apt-file अद्यतन स्थापित करने का प्रबंधन किया।

हालाँकि तब हमने एक और रोड़ा मारा।

usagiyojimbo@Usagi:~$ sudo apt-file find libstdc++.so.6
[sudo] password for usagiyojimbo: 
E: The cache is empty. You need to run 'apt-file update' first.

मैंने ऐसा किया है, जब मैं कहता हूं:

File is up-to-date.
Ignoring source without Contents File:
a link they won't let me post

या

File is up-to-date.
Downloading Index a link
No Index available.
Downloading complete file a link

जब मैं साइकोनॉट्स चलाने की कोशिश करता हूं तो मुझे वही त्रुटि मिलती है।


1
sudo apt-get install libstdc++6

जवाबों:


20

आपको त्रुटि संदेश मिलता है:

E: Unable to locate package libstdc++.so.6
E: Couldn't find any package by regex 'libstdc++.so.6'

क्योंकि आपने एक फ़ाइल स्थापित करने का प्रयास किया है libstdc++.so.6जिसे आप स्थापित नहीं कर सकते, क्योंकि यह एक डेबियन पैकेज में स्थित है।

आप apt-fileउस फ़ाइल के पैकेज को खोजने के लिए उपयोग कर सकते हैं । इसे स्थापित करने के लिए, टाइप करें:

sudo apt-get install apt-file

फिर आपको इंडेक्स अपडेट करना होगा।

sudo apt-file update

उसके बाद, आप उस पैकेज को खोज सकते हैं, जिसमें फ़ाइल है libstdc++.so.6:

sudo apt-file find libstdc++.so.6

फिर आपको बहुत सारे पैकेज मिलते हैं जिनमें खोजा गया फ़ाइल होता है। आपके मामले में, सही पैकेज है libstdc++6:

libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6

तब आप आवश्यक पैकेज स्थापित कर सकते हैं:

sudo apt-get install libstdc++6

ठीक है, इसलिए मैंने apt-file और apt-file अद्यतन स्थापित करने का प्रबंधन किया। हालाँकि तब हमने एक और रोड़ा मारा। usagiyojimbo @ Usagi: ~ $ sudo apt-file, libstdc ++ को खोजें। so.6 [sudo] usagiyojimbo के लिए पासवर्ड: E: कैश खाली है। आपको पहले 'apt-file update' चलाना होगा।
उसगीयोजिम्बो

भागो sudo apt-file updateऔर उसके बाद sudo apt-file find libstdc++.so.6। उपरोक्त उत्तर बिल्कुल पढ़ें।
BuZZ-dEE

2
यकीन नहीं होता कि मैंने क्या अलग किया है, लेकिन यह उपयुक्त फ़ाइल इस बार काम करती है। मुझे पैकेजों की सूची मिली है। जब मैं इसे स्थापित करने की कोशिश करता हूं, तो libstdc ++ 6 पहले से ही सबसे नया संस्करण है। जब मैं प्रयास करता हूं ।/Pychonauts यह अभी भी ऐसी कोई फ़ाइल या निर्देशिका नहीं कहता है।
UsagiYojimbo

और यदि आप 32-बिट हार्डवेयर के साथ गड़बड़ कर रहे हैं, तो अंत में निर्दिष्ट करना सुनिश्चित करें: sudo apt-get install libstdc ++ 6: i386
Ezekiel Kruglick


3

आप लगभग वहाँ हैं, बस ज़रूरत से ज़्यादा कुछ पात्रों का उपयोग किया है:

sudo apt-get install libstdc++6

... चाल चलनी चाहिए।


0

मैं आपके साथ काम करूंगा जो मेरे लिए काम कर रहा है। सबसे पहले आपको यह पता लगाना चाहिए कि क्या इस फाइल की कोई अन्य कॉपी पहले से ही आपके मशीन पर है:

$ locate libstdc++.so.6

उत्पादन:

/snap/core/6405/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6405/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6405/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/snap/core/6531/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6531/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6531/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6673/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25-gdb.py

जैसा कि आप देख सकते हैं कि /snap/core/...इस फ़ाइल के कई संस्करण हैं । (यदि यह विधि आपके लिए काम नहीं करती है)

आपको मौजूदा फ़ाइल से बैकअप बनाना चाहिए:

$ sudo mv /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.backup

तब आप नवीनतम स्नैप संस्करण को दूषित फ़ाइल में बदल सकते हैं:

sudo cp /snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

वांछित कमांड को फिर से चलाने का प्रयास करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.