GLIBCXX_3.4.20 non trouvé, comment corriger cette erreur?

90

J'essaie de lancer le programme Editeur de mise en page (disponible sur ce site ) sur Ubuntu 14.04.1 64 bits LTS J'obtiens la sortie suivante dans le terminal:

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

J'ai essayé la commande strings on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 comme suit et voici l'entrée et la sortie:

$ 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

Comment est-ce que je peux résoudre ce problème je devine en quelque sorte qu'il est lié avec GCC mais ne peut pas comprendre comment résoudre le problème. En outre, j'ai essayé un PPA comme suggéré sur Comment utiliser la dernière version de GCC sur Ubuntu? et il existe une question similaire pour une ancienne version d'Ubuntu à GLIBCXX_3.4.15 introuvable . Cependant, après avoir exécuté sudo update , je reçois de nombreux avertissements et la liste que j'ai obtenue avec la commande strings ne contenait pas de nouvelles entrées après l'installation de gcc 4.9 , alors j'ai purgé le PPA ( Générations de tests de chaînes d'outils ) avec ppa-purge . Toute aide, suggestions sur la façon de procéder sont grandement appréciées.

    
posée Vesnog 19.01.2015 - 21:36
la source

6 réponses

84

J'avais le même problème en essayant d'exécuter un autre programme et j'ai trouvé une solution sur StackOverflow .

Fondamentalement, il suffit de faire les commandes suivantes: Tout d'abord, installez:

sudo apt-get install libstdc++6

Cela devrait déjà être installé par défaut, mais essayez-le quand même. Si cela ne résout pas le problème, procédez comme suit:

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

Je n’ai pas exécuté la commande "dist-upgrade", mais les commandes précédentes l’avaient résolu pour moi

    
réponse donnée Paulo 08.02.2015 - 01:32
la source
55

Cela m’est arrivé avec anaconda 4.0.0 (comme @mjp a déclaré), mais le correctif pour moi était de lancer cette commande dans mon environnement:

conda install libgcc
    
réponse donnée neok 14.06.2016 - 17:37
la source
10

J'avais ce problème - c'était parce que Anaconda2 n'avait pas la version GLIBCXX_3.4.20 de cette chose. Seulement jusqu'à 19, le même que le vôtre.

Cependant, la bibliothèque d'Ubuntu l'avait bien . J'ai donc créé un softlink / raccourci dans la bibliothèque Anaconda vers la bibliothèque Linux contenant ce GLIBCXX_3.4.20, remplaçant le précédent, et cela a bien fonctionné après le redémarrage de l'interface graphique de python (Spyder).

Il devrait y avoir un dossier appelé libstdc++.so.6 dans la bibliothèque Anaconda, qui est ici: ~/anaconda2/lib . Ce dossier contient les versions du script / library-code-thing, à l'exclusion de celle qui vous manque: GLIBCXX_3.4.20

Suivez ces étapes pour résoudre le problème:

  1. allez au bon endroit et sauvegardez votre raccourci anaconda2 actuel (changez son nom pour qu'il ne soit pas écrasé):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. créez un nouveau raccourci à l’aide de la commande ln (je suppose que je suis dans l’emplacement précédent ~ / anaconda2 / lib):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. Redémarrez spyder / autre interface que vous utilisez

Ça devrait marcher maintenant!

    
réponse donnée mjp 28.04.2016 - 23:09
la source
3

J'ai résolu un problème comme celui-ci (mais GLIBCXX_3.4.21) sur CentOS mais il ne dépend pas de os. La bibliothèque fait partie du compilateur gcc. Vous devez donc installer ou compiler la version appropriée de gcc. Ceci est la table des versions de gcc et des versions de 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

(la liste complète des versions est ici )

Il ne dépend pas de la façon d’installer gcc - il peut être installé à partir du package ou compilé et installé à partir de sources.

Il est possible que les bibliothèques système gcc soient disponibles au lieu d’être nouvellement installées. Il faut donc spécifier la variable d'environnement où trouver les bibliothèques, par exemple dans une ligne de commande comme celle-ci:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
    
réponse donnée oklas 19.03.2018 - 13:50
la source
2

J'ai eu cela à maintes reprises au cours des années avec de nombreux paquets différents. Il a toujours été résolu par:

sudo apt-get dist-upgrade

Si votre dist peut être mis à niveau, il y aura presque toujours une nouvelle bibliothèque C ++ et des éléments tels que leur fonctionnement à nouveau. Le problème est presque toujours causé par le fait que votre système ne pointe pas vers la bonne bibliothèque. Dans mon cas, généralement causé en pointant vers une version du compilateur croisé d'une bibliothèque.

    
réponse donnée Bryan Wilcutt 23.09.2016 - 17:25
la source
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/
    
réponse donnée Mati 11.11.2015 - 21:55
la source

Lire d'autres questions sur les étiquettes