развернуть программу C++ с поддержкой C++11 на старой машине CentOS

развернуть программу C++ с поддержкой C++11 на старой машине CentOS

Моя программа зависит от libstdc++.so.6, которая зависит от /lib64/libstdc++.so.6.0.19

Но в моей старой CentOS есть libstdc++.so.6 => libstdc++.so.6.0.13

Вопросы

  1. Стоит ли проверять версию libstdc++.so.6, если она меньше 0.19?
  2. Как обновить libstdc++ до libstdc++.so.6.0.19?

решение1

libstc++.so.6.0.13и libstdc++.so.0.19совместимы. Смотритеlibstdc++ руководствоУ вас не должно возникнуть проблем с запуском вашей программы на машине CentOS.

В общем случае общие библиотеки в Linux должны следовать следующему соглашению о версиях: libfoo.so.X.Y.Z, где X— основной номер, а Yи Z— второстепенные номера. Когда Xувеличивается, новая версия несовместима со старой. Увеличение Yозначает, что в ABI внесено совместимое изменение. Изменение Zозначает, что была исправлена ​​какая-то ошибка, но интерфейс не изменился. Исполняемые двоичные файлы содержат ссылки на используемые ими общие библиотеки, но эти ссылки содержат только основной номер. Фактическая используемая библиотека определяется символической ссылкой библиотеки на машине, на которой запущена программа, например:

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

Связанный контент