GLIBCXX_3.4.20 non trovato, come risolvere questo errore?

90

Siero di latte Cerco di eseguire il programma Editor di layout (disponibile su questo sito ) su Ubuntu 14.04.1 LTS a 64 bit Ottengo il seguente output nel terminale:

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

Ho provato il comando strings su /usr/lib/x86_64-linux-gnu/libstdc++.so.6 come segue e qui c'è l'input e l'output:

$ 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

Come posso risolvere questo problema In qualche modo credo che sia correlato con GCC ma non riesco a capire come risolvere il problema. Inoltre, ho provato un PPA come suggerito su Come uso l'ultimo GCC su Ubuntu? e c'è una domanda simile per una versione precedente di Ubuntu a GLIBCXX_3.4.15 non trovato . Tuttavia, dopo aver eseguito sudo update ricevo numerosi avvisi e l'elenco che ho ottenuto con il comando stringhe non ha nuove voci dopo l'installazione di gcc 4.9 , quindi ho eliminato il PPA ( Test Build Toolchains ) con ppa-purge . Qualsiasi aiuto, suggerimenti su come procedere sono molto apprezzati.

    
posta Vesnog 19.01.2015 - 21:36

6 risposte

84

Stavo avendo lo stesso problema quando provavo ad eseguire un altro programma, e ho trovato una soluzione su StackOverflow .

Fondamentalmente, basta fare i seguenti comandi: Innanzitutto, installa:

sudo apt-get install libstdc++6

Questo dovrebbe essere già installato di default, ma provalo comunque. Se non lo risolve, procedi come segue:

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

Non ho eseguito il comando "dist-upgrade", ma prima ho risolto per me

    
risposta data Paulo 08.02.2015 - 01:32
55

Mi è successo con anaconda 4.0.0 (come dichiarato da @mjp), ma la soluzione per me era eseguire questo comando nel mio ambiente:

conda install libgcc
    
risposta data neok 14.06.2016 - 17:37
10

Ho riscontrato questo problema: era perché Anaconda2 non aveva la versione GLIBCXX_3.4.20 di qualunque cosa fosse. Solo fino a .19, uguale al tuo.

Tuttavia, la libreria di Ubuntu ce l'aveva . Così ho appena creato un collegamento / scorciatoia nella libreria Anaconda alla libreria Linux che contiene quel GLIBCXX_3.4.20, che sostituisce il precedente, e ha funzionato bene dopo aver riavviato la GUI python (Spyder).

Dovrebbe esserci una cartella chiamata libstdc++.so.6 nella libreria Anaconda, che è qui: ~/anaconda2/lib . All'interno di questa cartella ci sono le versioni dello script / libreria-codice-cosa, escluso quello che ti manca: GLIBCXX_3.4.20

Segui questa procedura per risolvere il problema:

  1. vai nel posto giusto e backup il tuo attuale collegamento anaconda2 (cambia il suo nome in modo che non venga sovrascritto):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. crea una nuova scorciatoia usando il comando ln (presumo di trovarmi nella posizione precedente ~ / anaconda2 / lib):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. riavvia spyder / altra interfaccia che usi

Dovrebbe ora funzionare!

    
risposta data mjp 28.04.2016 - 23:09
3

Ho risolto un problema come questo (ma GLIBCXX_3.4.21) su CentOS ma non dipende da os. La libreria fa parte del compilatore gcc quindi è necessario installare o compilare la versione appropriata di gcc. Questa è la tabella delle versioni di gcc e le versioni di libstdc ++ appropriate:

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

(l'elenco completo delle versioni è qui )

Non dipende da come installare gcc - potrebbe essere installato dal pacchetto o compilato e installato dai sorgenti.

È possibile che le librerie gcc di sistema siano disponibili anziché installate di recente. Quindi è necessario specificare la variabile di ambiente dove trovare le librerie per esempio nella riga di comando come questa:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
    
risposta data oklas 19.03.2018 - 13:50
2

Ho avuto tante volte durante gli anni con molti pacchetti diversi. È sempre stato risolto da:

sudo apt-get dist-upgrade

Se il tuo dist è aggiornabile, farà quasi sempre cadere una nuova libreria C ++ e riconfigerà cose come quelle che funzionano di nuovo. Il problema è quasi sempre causato dal fatto che il tuo sistema non punta alla libreria corretta. Nel mio caso, di solito è causato dal puntare a una versione cross-compiler di una libreria.

    
risposta data Bryan Wilcutt 23.09.2016 - 17:25
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/
    
risposta data Mati 11.11.2015 - 21:55

Leggi altre domande sui tag