Vraag GLIBCXX_3.4.20 niet gevonden, hoe deze fout te herstellen?


Whey Ik probeer het programma uit te voeren Layout Editor (beschikbaar op deze site) op Ubuntu 14.04.1 64-bit LTS Ik krijg de volgende uitvoer in de terminal:

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

Ik heb het commando geprobeerd strings op /usr/lib/x86_64-linux-gnu/libstdc++.so.6 als volgt en hier is de invoer en de uitvoer:

$ 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

Hoe kan ik dit probleem oplossen dat ik op de een of andere manier denk dat het gerelateerd is aan GCC maar kan niet achterhalen hoe het probleem op te lossen. Verder heb ik een PPA geprobeerd zoals voorgesteld op Hoe gebruik ik de nieuwste GCC op Ubuntu? en er is een vergelijkbare vraag voor een oudere versie van Ubuntu op GLIBCXX_3.4.15 niet gevonden. Echter, nadat ik liep sudo update Ik krijg veel waarschuwingen en de lijst die ik heb verkregen met de opdracht strings had na installatie geen nieuwe items gcc 4.9, dus ik heb de PPA verwijderd (Toolchains Test Builds) met ppa-purge. Alle hulp, suggesties over hoe verder te gaan worden enorm op prijs gesteld.


91
2018-01-19 20:36


oorsprong


Heb je al een oplossing gevonden? - Steven Roose
@StevenRoose Ik was in staat om het probleem op te lossen, na het toevoegen van enkele backports en het installeren van wat software, maar ik herinner me de details niet duidelijk wanneer ik ze onthoud, ik zal ze als een antwoord posten. - Vesnog
Het lijkt erop dat dit een effect is van symboolkoppelingen: stackoverflow.com/questions/2856438/... U leent eenvoudigweg niet genoeg aan een bibliotheekversie. - Ciro Santilli 新疆改造中心 六四事件 法轮功
Mogelijk duplicaat van /usr/lib/i386-linux-gnu/libstdc++.so.6: versie `GLIBCXX_3.4.19 'niet gevonden - xyz


antwoorden:


Ik had hetzelfde probleem bij het proberen om een ​​ander programma uit te voeren, en vond een oplossing op StackOverflow.

Voer in principe gewoon de volgende opdrachten uit: Installeer eerst:

sudo apt-get install libstdc++6

Dit zou standaard al moeten worden geïnstalleerd, maar probeer het toch. Als het probleem hiermee niet wordt opgelost, doet u het volgende:

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

Ik heb het "dist-upgrade" -commando niet uitgevoerd, maar de voorgaande hebben het voor mij opgelost


86
2018-02-08 00:32



sudo apt-get dist-upgrade loste mijn probleem op - ady
probleem opgelost zonder de noodzaak voor dist-upgrade als upgrade voorgesteld en bijgewerkt mijn systeem met de nieuwste libstdc++ - arainone
aanvulling van de repository, 'update' en een 'dist-upgrade' waren allemaal nodig aan mijn einde. - virtualxtc
na de update kunt u de nieuwste versie van GLIBCXX als controleren strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX - Krishan Kumar Mourya
Ubuntu 16.04: voeg in Nov. 2017 het 'niet-vertrouwde en niet-ondersteunde' toe ppa: ubuntu-gereedschapskist-r / test via add-apt-repository bijgewerkt /usr/lib/x86_64-linux-gnu/libstdc++.so.6 tot en met GLIBCXX_3.4.24 - en bovendien updates basicAl ALL c / c ++ / fortran ontwikkelingstools op uw machine - knb


Het overkwam mij met anaconda 4.0.0 (zoals @mjp vermeldde), maar de oplossing voor mij was om dit commando in mijn omgeving uit te voeren:

conda install libgcc

55
2018-06-14 15:37



Dit loste het voor mij op nadat ik vele oplossingen van andere threads geprobeerd had. - Shawn Anderson
Werkt ook op Ubuntu 16.04 - fviktor
dit heeft me echt een paar keer gered! - MBZ
Ubuntu 16.04 - opgelost voor mij. - Zhubarb
dit is veel beter .. werkte voor mij .. probeerde 'ROOT te importeren' in python - MycrofD


Ik had deze kwestie - het was omdat Anaconda2 had niet de GLIBCXX_3.4.20-versie van wat dat ding ook is. Alleen tot .19, hetzelfde als de uwe.

Ubuntu's bibliotheek had het echter wel. Dus ik heb zojuist een softlink / snelkoppeling in de Anaconda-bibliotheek gemaakt naar de eigenlijke Linux-bibliotheek met die GLIBCXX_3.4.20, ter vervanging van de vorige, en het werkte prima nadat de python-GUI (Spyder) opnieuw werd opgestart.

Er moet een map zijn genaamd libstdc++.so.6 in de Anaconda-bibliotheek, die hier is: ~/anaconda2/lib. In deze map staan ​​de versies van het script / bibliotheek-code-ding, met uitzondering van degene die u mist: GLIBCXX_3.4.20

Volg deze stappen om het probleem op te lossen:

  1. ga naar de juiste locatie en backup je huidige anaconda2 snelkoppeling (verander de naam zodat deze niet wordt overschreven):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. maak een nieuwe snelkoppeling met behulp van de ln commando (ik veronderstel dat ik op de vorige locatie ben ~ / anaconda2 / lib):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. herstart spyder / andere interface die u gebruikt

Het zou nu moeten werken!


10
2018-04-28 21:09





Ik loste het probleem op deze manier (maar GLIBCXX_3.4.21) op CentOS op, maar het is niet afhankelijk van os. De bibliotheek maakt deel uit van de gcc-compiler, dus moet u de juiste versie van gcc installeren of compileren. Dit is een tabel met versies van gcc en versies van de juiste 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

(volledige lijst met versies is hier )

Het is niet afhankelijk van het installeren van gcc - het kan worden geïnstalleerd vanuit een pakket of worden gecompileerd en geïnstalleerd vanuit bronnen.

Het is mogelijk dat systeemgcc-bibliotheken beschikbaar zijn in plaats van nieuw geïnstalleerd. Dus moet je omgevingsvariabele specificeren waar bibliotheken te vinden zijn, bijvoorbeeld in de commandoregel zoals deze:

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

3
2018-03-19 12:50





Ik heb dat vele malen gehad door de jaren heen met veel verschillende pakketten. Het is altijd opgelost door:

sudo apt-get dist-upgrade

Als je dist kan worden geüpgraded, wordt bijna altijd een nieuwe C ++ -bibliotheek naar beneden gehaald en worden dingen opnieuw geconfigureerd zoals dat ze weer werken. Het probleem wordt bijna altijd veroorzaakt doordat uw systeem niet naar de juiste bibliotheek verwijst. In mijn geval wordt dit meestal veroorzaakt door te wijzen naar een cross-compilerversie van een bibliotheek.


2
2017-09-23 15:25





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

1
2017-11-11 20:55



Welkom bij Ask Ubuntu! ik raad aan Bewerkdit antwoord om het uit te breiden met specifieke details over wat deze opdracht zou moeten bereiken. (Zie ook Hoe schrijf ik een goed antwoord? voor algemeen advies over wat voor soort antwoorden het meest waardevol zijn op Ask Ubuntu.) - David Foerster
Waarom cp en niet ln -s? - A.B.