124 votes

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

Lorsque j'essaie d'exécuter le programme Éditeur de mise en page (disponible sur ce site ) sur Ubuntu 14.04.1 64-bit 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 sur /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 puis-je résoudre ce problème ? Je pense que c'est lié à GCC mais je n'arrive pas à trouver comment résoudre le problème. De plus, j'ai essayé un PPA comme suggéré sur Comment utiliser la dernière version de GCC sur Ubuntu ? et il y a une question similaire pour une ancienne version d'Ubuntu à l'adresse GLIBCXX_3.4.15 non trouvé . 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 n'avait pas de nouvelles entrées après l'installation. gcc 4.9 J'ai donc purgé le PPA ( Chaînes d'outils Test Builds ) avec ppa-purge . Toute aide ou suggestion sur la façon de procéder est la bienvenue.

118voto

Paulo Points 1204

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

En gros, il suffit de faire les commandes suivantes : Premièrement, installez :

sudo apt-get install libstdc++6

Il devrait déjà être installé par défaut, mais essayez-le quand même. Si cela ne résout pas le problème, faites simplement ce qui 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 ont résolu le problème pour moi.

66voto

t-bltg Points 903

Cela m'est arrivé avec anaconda 4.0.0 (comme @mjp l'a indiqué), mais la solution pour moi était d'exécuter cette commande dans mon environnement :

conda install libgcc

17voto

mjp Points 399

J'ai eu ce problème - c'est parce que Anaconda2 n'avait pas la version GLIBCXX_3.4.20 de ce truc. Seulement jusqu'à .19, la même que la tienne.

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

Il devrait y avoir un dossier appelé libstdc++.so.6 dans la bibliothèque d'Anaconda, qui est ici : ~/anaconda2/lib . Dans ce dossier se trouvent les versions du script/library-code-truc, à l'exception de celui qui vous manque : GLIBCXX_3.4.20

Suivez les étapes suivantes pour résoudre ce problème :

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

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
  2. créer un nouveau raccourci en utilisant le 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émarrer spyder / autre interface que vous utilisez

Cela devrait maintenant fonctionner !

8voto

oklas Points 181

J'ai résolu un problème similaire (mais GLIBCXX_3.4.21) sur CentOS mais il ne dépend pas du système d'exploitation. La bibliothèque fait partie du compilateur gcc, il faut donc installer ou compiler la version appropriée de gcc. Voici le tableau des versions de gcc et des versions de libstdc++ appropriées :

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 aquí )

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

Il est possible que les bibliothèques gcc du système 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 la ligne de commande comme ceci :

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

3voto

Avant l'installation :

Cette solution de contournement est nécessaire pour éviter les erreurs de libstdc++ lors de l'exécution de hugo "étendu" avec le support de SASS.

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

Installation :

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

J'ai trouvé cette solution ici sur le forum d'assistance Hugo

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X