GLIBCXX_3.4.20 não encontrado, como corrigir esse erro?

94

Eu tentei executar o programa Editor de Layout (disponível em este site ) em Ubuntu 14.04.1 LTS de 64 bits Recebo a seguinte saída no terminal:

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

Eu tentei o comando strings on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 como a seguir e aqui está a entrada e a saída:

$ 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

Como posso resolver esse problema? De alguma forma, acho que está relacionado com GCC , mas não consigo descobrir como corrigir o problema. Além disso, eu tentei um PPA como sugerido em Como eu uso o mais recente GCC no Ubuntu? e há uma pergunta semelhante para uma versão mais antiga do Ubuntu em GLIBCXX_3.4.15 não encontrado . No entanto, depois que eu corri sudo update recebi vários avisos e a lista que obtive com o comando strings não tinha novas entradas depois de instalar o gcc 4.9 , então eu removi o PPA ( Construções de teste de conjuntos de ferramentas ) com ppa-purge . Qualquer ajuda, sugestões sobre como proceder são muito apreciadas.

    
por Vesnog 19.01.2015 / 21:36

6 respostas

90

Eu estava tendo o mesmo problema ao tentar executar outro programa e encontrei uma solução em StackOverflow .

Basicamente, apenas faça os seguintes comandos: Em primeiro lugar, instale:

sudo apt-get install libstdc++6

Isso já deve estar instalado por padrão, mas tente de qualquer maneira. Se isso não resolver, faça o seguinte:

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

Eu não realizei o comando "dist-upgrade", mas os anteriores resolveram para mim

    
por Paulo 08.02.2015 / 01:32
56

Aconteceu-me com o anaconda 4.0.0 (como @mjp afirmou), mas a solução para mim foi executar este comando no meu ambiente:

conda install libgcc
    
por neok 14.06.2016 / 17:37
11

Eu tive este problema - foi porque Anaconda2 não tinha a versão GLIBCXX_3.4.20 do que quer que seja. Apenas até 0,19, o mesmo que o seu.

No entanto, a biblioteca do Ubuntu tinha isso . Então eu apenas criei um atalho na biblioteca do Anaconda para a biblioteca Linux que contém o GLIBCXX_3.4.20, substituindo o anterior, e funcionou bem depois de reiniciar o GUI do Python (Spyder).

Deve haver uma pasta chamada libstdc++.so.6 na biblioteca do Anaconda, que está aqui: ~/anaconda2/lib . Dentro desta pasta estão as versões do script / library-code-thing, excluindo o que você está perdendo: GLIBCXX_3.4.20

Siga estas etapas para resolver o problema:

  1. acesse o local correto e backup seu atalho anaconda2 atual (altere seu nome para não ser sobrescrito):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. crie um novo atalho usando o comando ln (suponho que eu esteja no local anterior ~ / anaconda2 / lib):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. reinicie o spyder / outra interface que você usa

Agora deve funcionar!

    
por mjp 28.04.2016 / 23:09
3

Eu resolvi um problema como este (mas GLIBCXX_3.4.21) no CentOS, mas ele não é dependente do sistema operacional. A biblioteca é parte do compilador gcc, então é necessário instalar ou compilar a versão apropriada do gcc. Esta é a tabela de versões do gcc e versões de libstdc ++ apropriadas:

% bl0ck_qu0te%

(a lista completa de versões é aqui )

Não depende de como instalar o gcc - pode ser instalado a partir do pacote ou compilado e instalado a partir de fontes.

É possível que as bibliotecas gcc do sistema estejam disponíveis em vez de serem instaladas de novo. Então precisa especificar a variável de ambiente onde encontrar bibliotecas por exemplo na linha de comando assim:

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

Eu tive várias vezes ao longo dos anos com muitos pacotes diferentes. Sempre foi resolvido por:

sudo apt-get dist-upgrade

Se o seu dist for atualizável, ele quase sempre derrubará uma nova biblioteca C ++ e reconfigurará coisas como as que funcionam novamente. O problema é quase sempre causado pelo sistema não apontar para a biblioteca correta. No meu caso, geralmente causado por apontar para uma versão do compilador cruzado de uma biblioteca.

    
por 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/
    
por Mati 11.11.2015 / 21:55