Versão 'GLIBCXX_3.4.15' não encontrada no CentOS (no arquivo /usr/lib/libstdc++.so.6)

2

Eu tento usar um programa e recebo o seguinte erro.

/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found

Em / usr / lib64, o libstdc ++ que eu vejo é libstdc ++. so.6.0.13 (e um link).

Com strings libstdc++.so.6.0.13 | grep GLIBCXX , obtenho

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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

Com cat /etc/redhat-release , obtenho

Red Hat Enterprise Linux Workstation release 6.4 (Santiago)

Então, a questão sobre o que devo fazer para corrigir isso. Devo instalar alguns novos pacotes e, se sim, quais?

    
por George Kastrinis 24.06.2013 / 20:00

2 respostas

0

Você precisa instalar uma versão mais nova do GCC e, se for um pacote separado no CentOS, uma versão mais recente do gcc-libs. Infelizmente, não acho que essas versões recentes estejam disponíveis no repositório do CentOS.

Uma opção seria instalar a versão mais recente do GCC somente para sua conta de usuário (ou seja, não instalá-lo em todo o sistema, o que ajudará a evitar algumas possíveis dores de cabeça). Você pode fazer isso facilmente usando o GSRC , mas é claro que você também pode simplesmente baixar o arquivo de origem do GCC e especificar um diretório padrão para a opção --prefix . Então, ao criar seu novo software, você terá que especificar LDFLAGS="-L /path/to/your/gcc/libs -L/usr/lib (etc)" , CFLAGS="-I /path/to/your/gcc/includes -I /usr/include (etc)" e provavelmente algo como CXX=/path/to/your/g++ . Quando você executar o programa, precisará de LD_LIBRARY_PATH=/path/to/your/gcc/libs em seu ambiente.

Como alternativa, você pode instalar uma distribuição com software mais atualizado, embora eu entenda que isso nem sempre é possível.

    
por 05.07.2013 / 12:46
0

Eu tive o mesmo problema, então usei este link para glibcxx_3.4.15 e coloquei manualmente o conteúdo no pasta requerida (pasta / usr / lib). Consegui rodar o gdb em meus aplicativos depois disso. Espero que isso ajude.

EDITAR: Selecione o link sob as abas ALT Linux e baixe o pacote binário (estes pacotes são mais genéricos e podem ser usados em várias distros).

Ex: libstdc ++ 6-4.7.2-alt7.i586.rpm - biblioteca padrão C ++ do GNU

Isto incluirá libstdc ++. so.6.0.17 assim como libstdc ++. so.6.0.15.

    
por 18.10.2013 / 17:18