implanta um programa c ++ com suporte para c ++ 11 em uma máquina mais antiga do CentOS

0

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

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

Perguntas

  1. Devo verificar a versão do libstdc ++. so.6 se menor que 0.19?
  2. Como faço para atualizar o libstdc ++ para o libstdc ++. so.6.0.19?
por Ganesan 27.08.2018 / 12:56

1 resposta

1

libstc++.so.6.0.13 e libstdc++.so.0.19 são compatíveis. Consulte o manual do libstdc ++ . Você não deve ter problemas para executar seu programa na máquina do CentOS.

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

/usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.25
    
por 27.08.2018 / 20:04

Tags