Como instalo o GLIBCXX?

1

Estou tentando instalar este software chamado Skedler. Sua documentação menciona as dependências da biblioteca GLIBCXX, mas eles não poderiam se incomodar em fornecer instruções de instalação.

GLIBCXX libraries

Skedler has dependency on libstdc++ library.
    Following are the GLIBCXX versions the code depends on
    libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
To check the versions on your server. Please run the command
    CentOS 
    strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
    Debian/Ubuntu
    strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 

    If the version is not available, update the GCC compiler

A execução do comando grep fornece no such file found no Ubuntu 18.04. Eu também tentei sudo apt-get install libstdc++ e vários outros comandos, mas nada parece instalar as bibliotecas necessárias.

    
por sjaak 18.07.2018 / 07:55

1 resposta

2

O nome do caminho sugerido para checar não é exato para o moderno Debian / Ubuntu. O comando provavelmente deve ser:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

E este segmento parece uma parte da saída do comando ldd :

libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6

O fato de não haver texto not found após a seta em qualquer uma dessas três linhas indica que o binário que foi testado pelo programa de instalação encontrou com êxito tudo o que precisava na biblioteca. Então, parece que essa dependência já é tratada pelo seu sistema.

A propósito, a saída do Skedler parece um pouco confusa em relação ao nome da biblioteca. O nome mais visível ao usuário deve ser libstdc++ .

No Debian 9, existem duas versões de libstdc++ atualmente disponíveis: a versão atual é empacotada como libstdc++6 , e uma versão legada que costumava ser popular com vários softwares proprietários é empacotada como libstdc++5 . Eu acho que o Ubuntu pode ter versões com nomes semelhantes disponíveis.

O nome GLIBCXX é o prefixo dos nomes dos símbolos de versão dentro da biblioteca. Normalmente, seria mais relacionado ao nome real da biblioteca (sem o prefixo "lib"), mas, neste caso, os sinais de mais são um problema e, portanto, são substituídos por caracteres X.

(O antigo libstdc++5 usou uma ABI diferente que é incompatível com a atual, e seus símbolos de versão usaram um prefixo GLIBCPP ).

    
por 18.07.2018 / 08:47