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


Whey j'essaye de lancer le programme Éditeur 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 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? 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 le dernier GCC sur Ubuntu? et il y a une question similaire pour une ancienne version d'Ubuntu à GLIBCXX_3.4.15 introuvable. Cependant, après avoir couru 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 (Assemblages 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.


91
2018-01-19 20:36


origine


Vous avez déjà trouvé une solution? - Steven Roose
@StevenRoose J'ai pu résoudre le problème, après avoir ajouté des backports et installé des logiciels, mais je ne me souviens pas clairement des détails lorsque je m'en souviens, je les posterai comme une réponse. - Vesnog
Il semble que ce soit un effet de liaison de symboles: stackoverflow.com/questions/2856438/… Vous ne faites tout simplement pas le lien vers une version de bibliothèque assez récente. - Ciro Santilli 新疆改造中心 六四事件 法轮功
Duplicata possible de /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.19 'introuvable - xyz


Réponses:


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'ont résolu pour moi


86
2018-02-08 00:32



sudo apt-get dist-upgrade a résolu mon problème - ady
problème résolu sans avoir besoin de dist-upgrade comme upgrade proposé et mis à jour mon système avec le dernier libstdc++ - arainone
ajout de dépôt, 'update' et un 'dist-upgrade' étaient tous nécessaires de mon côté. - virtualxtc
après la mise à jour, vous pouvez vérifier la dernière version de GLIBCXX en tant que strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX - Krishan Kumar Mourya
Ubuntu 16.04: en novembre 2017, l'ajout du "non approuvé et non pris en charge" ppa: ubuntu-toolchain-r / test via add-apt-repository actualisé /usr/lib/x86_64-linux-gnu/libstdc++.so.6 jusqu'à et y compris GLIBCXX_3.4.24 - et en outre, cela met à jour basicall tous les outils de développement c / c ++ / fortran sur votre machine - knb


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

conda install libgcc

55
2018-06-14 15:37



Cela m'a résolu après avoir essayé de nombreuses solutions à partir d'autres threads. - Shawn Anderson
Fonctionne également sur Ubuntu 16.04 - fviktor
Cela m'a vraiment sauvé les fesses à quelques reprises! - MBZ
Ubuntu 16.04 - résolu pour moi - Zhubarb
c'est beaucoup mieux .. a travaillé pour moi .. essayait de 'importer ROOT' en python - MycrofD


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

Cependant, la bibliothèque d'Ubuntu l'avait. 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 d'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. aller au bon endroit et sauvegarde votre courant anaconda2 raccourci (change 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 commande (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

Ca devrait marcher maintenant!


10
2018-04-28 21:09





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. C'est la table 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 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 la ligne de commande comme ceci:

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

3
2018-03-19 12:50





J'ai eu cela à plusieurs reprises au fil des ans 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 provoqué en pointant vers une version du compilateur croisé d'une bibliothèque.


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



Bienvenue sur Ask Ubuntu! je recommande modifiercette réponse pour l’étendre avec des détails spécifiques sur ce que cette commande est censée accomplir. (Voir également Comment écrire une bonne réponse? pour des conseils généraux sur les types de réponses les plus utiles sur Ask Ubuntu.) - David Foerster
Pourquoi cp et pas ln -s? - A.B.