이전 CentOS 시스템에 c++11을 지원하는 C++ 프로그램 배포

이전 CentOS 시스템에 c++11을 지원하는 C++ 프로그램 배포

내 프로그램은 /lib64/libstdc++.so.6.0.19에 의존하는 libstdc++.so.6에 의존합니다.

하지만 내 이전 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새 버전이 이전 버전과 호환되지 않습니다. 증분은 YABI에 대한 호환 가능한 변경이 이루어짐을 의미합니다. 변경이란 Z일부 버그가 수정되었지만 인터페이스는 변경되지 않았음을 의미합니다. 실행 가능한 바이너리에는 사용하는 공유 라이브러리에 대한 참조가 포함되어 있지만 이러한 참조에는 주요 번호만 포함됩니다. 사용되는 실제 라이브러리는 프로그램이 실행되는 시스템의 라이브러리 심볼릭 링크에 의해 결정됩니다. 예를 들면 다음과 같습니다.

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

관련 정보