implementar un programa c++ con soporte c++11 en una máquina CentOS anterior

implementar un programa c++ con soporte c++11 en una máquina CentOS anterior

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

Pero mi CentOS anterior tiene libstdc++.so.6 => libstdc++.so.6.0.13

Preguntas

  1. ¿Debo comprobar la versión de libstdc++.so.6 si es inferior a 0,19?
  2. ¿Cómo actualizo libstdc++ a libstdc++.so.6.0.19?

Respuesta1

libstc++.so.6.0.13y libstdc++.so.0.19son compatibles. Ver elmanual libstdc++. No debería tener problemas para ejecutar su programa en la máquina CentOS.

En general, las bibliotecas compartidas en Linux deben seguir la siguiente convención de control de versiones: libfoo.so.X.Y.Z, donde Xes el número mayor y Yy Zson números menores. Cuando Xse incrementa, la nueva versión es incompatible con la versión anterior. Incrementar Ysignifica que se realiza un cambio compatible en el ABI. Un cambio Zsignifica que se ha solucionado algún error, pero la interfaz no ha cambiado. Los binarios ejecutables contienen referencias a las bibliotecas compartidas que utilizan, pero estas referencias sólo contienen el número principal. La biblioteca real utilizada está determinada por el enlace simbólico de la biblioteca en la máquina en la que se ejecuta el programa, por ejemplo:

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

información relacionada