GLIBCXX_3.4.20 नहीं मिला, इस त्रुटि को कैसे ठीक करें?


104

मट्ठा I उबंटू 14.04.1 को प्रोग्राम लेआउट एडिटर ( इस साइट पर उपलब्ध ) को चलाने की कोशिश करता है। 64-बिट एलटीएस मैं टर्मिनल में निम्न आउटपुट प्राप्त करता है:

$ layout
layout: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by layout)

मैं आदेश की कोशिश की stringsपर /usr/lib/x86_64-linux-gnu/libstdc++.so.6के रूप में निम्नलिखित और यहाँ इनपुट और आउटपुट है:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH

मैं इस समस्या को कैसे हल कर सकता हूं मुझे लगता है कि यह किसी भी तरह से संबंधित है, GCCलेकिन यह पता नहीं लगा सकता है कि समस्या को कैसे ठीक किया जाए। इसके अलावा, मैंने सुझाव दिया है कि मैं Ubuntu पर नवीनतम जीसीसी का उपयोग कैसे करूं , इसके लिए एक पीपीए की कोशिश की है ? और GLIBCXX_3.4.15 पर उबंटू के पुराने संस्करण के समान प्रश्न नहीं मिला है । हालाँकि, मैंने दौड़ने के बाद मुझे sudo updateकई चेतावनियाँ दीं और तार के साथ मैंने जो सूची प्राप्त की gcc 4.9, उसे स्थापित करने के बाद नई प्रविष्टियाँ नहीं थीं , इसलिए मैंने पीपीए ( टूलचाइन्स टेस्ट बिल्ड्स ) को शुद्ध कर दिया ppa-purge। कोई मदद, आगे बढ़ने के सुझाव पर बहुत सराहना की जाती है।


पहले ही हल मिल गया?
स्टीवन रूज

1
@StevenRoose मैं कुछ बैकफ़ोर्स जोड़ने और कुछ सॉफ़्टवेयर इंस्टॉल करने के बाद समस्या को हल करने में सक्षम था, लेकिन मुझे विवरण स्पष्ट रूप से याद नहीं है, जब मुझे याद है कि मैं उन्हें उत्तर के रूप में पोस्ट करूंगा।
वेसनॉग

ऐसा लगता है कि यह प्रतीक जोड़ने का एक प्रभाव है: stackoverflow.com/questions/2856438/… आप बस हाल ही में एक पुस्तकालय संस्करण के लिए लिंक नहीं कर रहे हैं।
सिरो सेंटिल्ली 新疆 改造 iro i 事件 '14

जवाबों:


102

अन्य प्रोग्राम को चलाने का प्रयास करते समय मुझे वही समस्या हो रही थी, और स्टैकऑवरफ़्लो पर एक समाधान मिला ।

मूल रूप से, बस निम्नलिखित कमांड करें: सबसे पहले, स्थापित करें:

sudo apt-get install libstdc++6

यह पहले से ही डिफ़ॉल्ट रूप से स्थापित होना चाहिए, लेकिन फिर भी इसे आज़माएं। यदि यह इसे हल नहीं करता है, तो बस निम्नलिखित करें:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

मैंने "डिस्ट-अप-अप" कमांड का प्रदर्शन नहीं किया, लेकिन इससे पहले कि लोग इसे मेरे लिए हल कर दें


6
sudo apt-get dist-upgrade मेरी समस्या का समाधान किया
ady

2
समस्या dist-upgradeको upgradeप्रस्तावित किए बिना हल किया गया और नवीनतम के साथ मेरे सिस्टम को अपडेट किया गयाlibstdc++
arainone

2
रिपॉजिटरी जोड़, 'अपडेट' और 'डिस्ट-अपग्रेड' सभी मेरे अंत में आवश्यक थे।
virtualxtc

5
अपडेट के बाद आप GLIBCXX के नवीनतम संस्करण की जाँच कर सकते हैंstrings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
कृष्ण कुमार मौर्य

1
उबंटू 16.04: नवंबर 2017 में, 'अविश्वासित, और असमर्थित' ppa को जोड़ने : ubuntu-toolchain-r / test के माध्यम से ऐड- अप और GLIBCXX_3.4.24 तक apt-repositoryअपडेट किया /usr/lib/x86_64-linux-gnu/libstdc++.so.6गया है - और इसके अलावा, यह सभी को मूल बनाता है c / c ++ / फोरट्रान विकास उपकरण आपकी मशीन पर
knb

60

यह मेरे साथ एनाकोंडा 4.0.0 (जैसा कि @mjp कहा गया है) के साथ हुआ था, लेकिन मेरे लिए यह तय था कि इस कमांड को मेरे नेटवर्क में चलाया जाए:

conda install libgcc

6
अन्य सूत्र से कई समाधानों को आजमाने के बाद इसने मेरे लिए इसे हल किया।
शॉन एंडरसन

3
उबंटू 16.04 के साथ
fviktor

1
यह वास्तव में कई बार मेरे बट को बचाया!
MBZ

Ubuntu 16.04 - मेरे लिए इसे हल किया।
झूबर्ब

यह बहुत बेहतर है .. मेरे लिए काम किया .. अजगर में 'आयात' करने की कोशिश कर रहा था
MycrofD

11

मैं इस मुद्दे पर था - यह था, क्योंकि Anaconda2GLIBCXX_3.4.20 संस्करण है कि बात यह है कि जो कुछ भी की नहीं थी। केवल .19 तक, आपके समान।

हालाँकि, उबंटू के पुस्तकालय में यह नहीं था । इसलिए मैंने सिर्फ एनाकोंडा लाइब्रेरी में वास्तविक लिनक्स लाइब्रेरी के लिए एक सॉफ्टलिंक / शॉर्टकट बनाया, जिसमें GLIBCXX_3.4.20 था, जो पिछले एक की जगह था, और इसने अजगर GUI (स्पाइडर) को फिर से शुरू करने के बाद ठीक काम किया।

libstdc++.so.6एनाकोंडा लाइब्रेरी में एक फ़ोल्डर होना चाहिए , जो यहां है ~/anaconda2/lib:। इस फ़ोल्डर के भीतर स्क्रिप्ट / लाइब्रेरी-कोड-चीज़ के संस्करण हैं, जिसमें से आप गायब हैं: GLIBCXX_3.4.20 को छोड़कर

समस्या को हल करने के लिए इन चरणों का पालन करें:

  1. सही स्थान पर जाएं और अपने वर्तमान शॉर्टकट का बैकअप लें anaconda2(इसका नाम बदलें ताकि यह ओवरराइट न हो):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. lnकमांड का उपयोग करके एक नया शॉर्टकट बनाएं (मैं मान रहा हूं कि मैं पिछले स्थान में हूं ~ / anaconda2 / lib):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. आपके द्वारा उपयोग किए जाने वाले स्पाइडर / अन्य इंटरफ़ेस को पुनरारंभ करें

यह अब काम करना चाहिए!


मेरे लिए यह सिर्फ कोंडा का नाम बदलने के लिए पर्याप्त था। तब इसे एक लिंक की आवश्यकता के बिना ओएस संस्करण मिला
मिंगवेई शमूएल

7

मैंने CentOS पर इस तरह की समस्या (लेकिन GLIBCXX_3.4.21) को हल किया लेकिन यह ओएस से निर्भर नहीं है। पुस्तकालय gcc संकलक का हिस्सा है इसलिए gcc के उपयुक्त संस्करण को संस्थापित या संकलित करने की आवश्यकता है। यह gcc के संस्करणों और उपयुक्त libstdc ++ के संस्करणों की तालिका है:

GCC 4.9.0: libstdc++.so.6.0.20
GCC 5.1.0: libstdc++.so.6.0.21
GCC 6.1.0: libstdc++.so.6.0.22
GCC 7.1.0: libstdc++.so.6.0.23
GCC 7.2.0: libstdc++.so.6.0.24
GCC 8.0.0: libstdc++.so.6.0.25

(संस्करणों की पूरी सूची यहां है )

यह इस बात पर निर्भर नहीं है कि जीसीसी कैसे स्थापित किया जाए - यह पैकेज से स्थापित किया जा सकता है या स्रोतों से संकलित और स्थापित किया जा सकता है।

यह संभव है कि सिस्टम gcc लाइब्रेरी नए संस्थापित के बजाय उपलब्ध है। तो पर्यावरण चर को निर्दिष्ट करने की आवश्यकता है जहां कमांड लाइन में उदाहरण के लिए पुस्तकालयों को इस तरह से खोजना है:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...

मैंने इसे स्थायी रूप से इस कमांड के साथ /usr/lib64/libstdc++.so.6मेरे नए संस्करण की ओर इंगित करने के लिए लिंक को अपडेट करके तय किया है :। यदि आप को वापस करने की आवश्यकता है, तो पुराना संस्करण बिना किसी लिंक के इंगित करता रहता है। थोड़ा सा हैक लेकिन यह काम करता है। /usr/local/lib64/libstdc++.so.6ln -fs /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
मैथ्यू

2

मैंने कई अलग-अलग पैकेजों के साथ वर्षों के दौरान कई बार किया है। यह हमेशा से हल किया गया है:

sudo apt-get dist-upgrade

यदि आपका डिस्टर्ब करने योग्य है, तो यह लगभग हमेशा एक नया C ++ लाइब्रेरी लाएगा और चीजों को फिर से जोड़ देगा जैसे वे फिर से काम करते हैं। समस्या लगभग हमेशा आपके सिस्टम द्वारा सही लाइब्रेरी की ओर इशारा नहीं करने के कारण होती है। मेरे मामले में, आमतौर पर एक पुस्तकालय के क्रॉस-कंपाइलर संस्करण की ओर इशारा करने के कारण होता है।


2

before_install:

# SASS के समर्थन के साथ "विस्तारित" ह्यूगो को चलाते समय libstdc ++ त्रुटियों से बचने के लिए इस समाधान की आवश्यकता है।

  • wget -q -O libstdc++6 http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
  • sudo dpkg --force-all -i libstdc++6

इंस्टॉल करें I:

  • wget -q -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.46/hugo_extended_0.46_Linux_64bit.deb
  • sudo dpkg -i hugo.deb

मुझे यह समाधान यहां मिला


1
sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/

5
उबंटू पूछने के लिए आपका स्वागत है! मैं सलाह देता हूं कि इस उत्तर को संपादित करने के लिए इसे विशिष्ट विवरणों के साथ विस्तारित करें कि यह कमांड क्या हासिल करना है। (यह भी देखें कि मैं एक अच्छा उत्तर कैसे लिख सकता हूं? सामान्य सलाह के लिए,
उकबे

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