Como posso obter o GLIBCXX_3.4.15 no Ubuntu? Não consigo executar alguns programas que estou compilando.
Quando eu faço:
strings /usr/lib/libstdc++.so.6 | grep GLIBC
Eu recebo:
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
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
Obrigado por qualquer ajuda!
apt-get
solução baseada para este problema é descrita aqui: superuser.com/questions/310809/...Eu estive evitando esse problema no passado, simplesmente vinculando libstdc ++ estaticamente com este parâmetro enviado para g ++ ao vincular meu executável:
Se o vínculo estatístico na biblioteca for uma opção, esta provavelmente é a solução mais rápida.
fonte
Eu estava tentando fazer o clang funcionar (que também requer 6.0.15) e, enquanto bisbilhotava, descobri que ele estava instalado em
/usr/local/lib/libstdc++.so.6.0.15
. Ele foi instalado lá quando eu instalei o grafite (uma versão experimental do gcc).Se você precisar acessar as bibliotecas nesse local, será necessário definir
LD_LIBRARY_PATH
como:export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
Eu era capaz de fazer clang para trabalhar depois de fazer isso. Espero que seja útil para alguém.
fonte
LD_LIBRARY_PATH
os afetará. todos eles vão link para a nova biblioteca, No final, a maioria dos binários não estão funcionando: tais comols
grep
, ....: I'am recebendo:ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
Encontro esse problema ao tentar usar o matlab eng para chamar funções m do código c. o que ocorre com o comando
mex -f .. ..
Minha solução:
Eu achei que inclui 3.4.15
então meu sistema tem as mais recentes bibliotecas.
o problema vem do próprio matlab, ele chama seu próprio libstdc ++. so.6
{MATLAB}/bin
portanto, substitua-o pela lib do sistema atualizada.
fonte
{MATLAB}/bin
arquivo/usr/lib/
e, em seguida, reiniciar o matlab. Isso funciona no Matlab 2010b no Fedora 14 x64.Eu tenho o mesmo erro. É assim que funcionou para mim:
Funcionou perfeitamente!
fonte
Para esse erro, copiei o libstdc ++. So.6.0.17 mais recente de outro servidor, removi o link flexível e o recriei.
1. Copie o libstdc ++. So.6.0.15 ou mais recente de outro servidor para o sistema afetado.
No meu caso, o SUSE linux 11 SP3 possuía as últimas.
2. rm libstdc ++. So.6
3. ln -s libstdc ++. So.6.0.17 libstdc ++. So.6 (no diretório / usr / lib64).
nJoy
fonte
Acabei de enfrentar um problema semelhante ao criar a versão LLVM 3.7. primeiro verifique se você instalou a biblioteca necessária em seu sistema:
Em seguida, adicione o local encontrado à sua variável de ambiente $ LD_LIBRARY_PATH.
fonte
Às vezes, você não controla a máquina de destino (por exemplo, sua biblioteca precisa ser executada em um sistema corporativo bloqueado). Nesse caso, você precisará recompilar seu código usando a versão do GCC que corresponde à versão GLIBCXX. Nesse caso, você pode fazer o seguinte:
strings /usr/lib/libstdc++.so.6 | grep GLIBC
... Digamos que a versão seja3.4.19
.[4.8.3, 4.9.0)
.fonte
gcc versão 4.8.1, o erro parece:
Encontrei o libstdc ++. So.6.0.18 no local em que eu cumpri o gcc 4.8.1
Então eu faço assim
problema resolvido.
fonte
Eu os extraí de um RPM ( RPM para libstdc ++ ) e depois:
Definir o sistema para procurar as bibliotecas no diretório atual. Então apenas executei meu programa. Mas, no meu caso, recebi um único executável de que precisava, não foi uma mudança no sistema.
fonte
Eu tive um problema semelhante e o resolvi vinculando estaticamente
libstdc++
ao programa que estava compilando, assim:em vez do habitual
Pode haver problemas com esta solução relacionados ao carregamento de bibliotecas compartilhadas em tempo de execução, mas eu não examinei o problema profundamente o suficiente para comentar.
fonte
Bug with GLIBCXX_3.4.14 Você precisa instalar uma versão mais recente do GCC. http://pkgs.org/download/libstdc++.so.6, vá para:
http://geeksterminal.com/how-to-install-glib-glibc/1392/
e siga as instruções.
fonte
Eu tive o mesmo problema porque mudei o usuário de mim para outra pessoa:
su
Por alguma razão, depois da compilação normal, não consegui executá-la (a mesma mensagem de erro). O ssh diretamente para a outra conta de usuário funciona.
fonte
Eu tinha várias versões do compilador gcc instaladas e precisava usar uma versão mais recente que a instalação padrão. Como não sou administrador de sistemas de nossos sistemas Linux, não posso simplesmente alterar / usr / lib ou muitas das outras sugestões acima. Eu estava enfrentando esse problema e, eventualmente, o localizei para definir meu caminho para o diretório da biblioteca de 32 bits em vez do diretório da biblioteca de 64 bits (lib64). Como as bibliotecas no diretório de 32 bits eram incompatíveis, o sistema padronizou a versão mais antiga que estava desatualizada.
O uso de -L no caminho que eu estava referenciando deu avisos sobre "pular a libstdc ++ incompatível. Portanto, ao procurar -lstdc ++". Essa foi a dica que finalmente me ajudou a resolver o problema.
fonte
A mesma coisa com a versão gcc
4.8.1 (GCC)
elibstdc++.so.6.0.18
. Tive que copiá-lo aqui/usr/lib/x86_64-linux-gnu
na minha caixa do ubuntu.fonte
No meu caso, LD_LIBRARY_PATH tinha / usr / lib64 primeiro antes de / usr / local / lib64. (Eu estava construindo o llvm 3.9).
O novo compilador gcc que eu instalei para compilar o llvm 3.9 tinha bibliotecas usando as bibliotecas GLIBCXX mais recentes em / usr / local / lib64. Portanto, corrigi LD_LIBRARY_PATH para o vinculador ver primeiro / usr / local / lib64.
Isso resolveu esse problema.
fonte
Eu apenas usei -static-libstdc ++ durante a construção. com isso, eu posso executar o a.out
fonte
Para fins de teste:
Na máquina original, localize a biblioteca, copie para o mesmo diretório que o executável:
Em seguida, copie esta mesma biblioteca para a máquina de destino e execute o executável:
Nota: o comando acima é temporário; não é uma mudança em todo o sistema.
fonte
Eu tive o mesmo problema antes, e corrigi isso, as etapas podem ser encontradas neste erro de correção "GLIBCXX_3.4.15" no matlab
fonte