implantar um programa c++ com suporte a c++11 em máquinas CentOS mais antigas

implantar um programa c++ com suporte a c++11 em máquinas CentOS mais antigas

Meu programa depende de libstdc++.so.6 que depende de /lib64/libstdc++.so.6.0.19

Mas meu CentOS mais antigo tem libstdc++.so.6 => libstdc++.so.6.0.13

Questões

  1. Devo verificar a versão do libstdc++.so.6 se for menor que 0,19?
  2. Como atualizo o libstdc++ para libstdc++.so.6.0.19?

Responder1

libstc++.so.6.0.13e libstdc++.so.0.19são compatíveis. Veja omanual da libstdc++. Você não deverá ter problemas para executar seu programa na máquina CentOS.

Em geral, as bibliotecas compartilhadas no Linux devem seguir a seguinte convenção de versão: libfoo.so.X.Y.Z, onde Xé o número maior e Ye Zsão os números menores. Quando Xé incrementado, a nova versão é incompatível com a versão antiga. Incrementar Ysignifica que uma alteração compatível na ABI é feita. Uma alteração Zsignifica que algum bug foi corrigido, mas a interface permanece inalterada. Os binários executáveis ​​contêm referências às bibliotecas compartilhadas que usam, mas essas referências contêm apenas o número principal. A biblioteca real usada é determinada pelo link simbólico da biblioteca na máquina em que o programa é executado, por exemplo:

/usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.25

informação relacionada