CentOS의 GLIBCXX_3.4.21

CentOS의 GLIBCXX_3.4.21

Ubuntu 컴퓨터에서 C++ 응용 프로그램을 만들었습니다. Centos 머신에 바이너리를 복사했습니다. 에러 발생됨:

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

필요하다고 생각되는 패키지를 설치했습니다.

yum install gcc gcc-c++ make openssl-devel

여전히 같은 오류가 발생합니다.

그런 다음 전체 개발 도구를 설치했습니다.

yum groupinstall 'Development Tools'

여전히 같은 오류가 발생합니다. 이 문제를 해결하는 방법?

UPD

나는 glibc다음 명령을 사용하여 내 컴퓨터에 어떤 버전이 있는지 확인하기 로 결정했습니다 ldd --version.

Ubuntu: 2.23
Centos6.9: 2.12

Ubuntu 버전 2.23 CentOS에 대해 불평하는 이유는 무엇입니까 ?GLIBCXX_3.4.21glibc

답변1

이것은 CentOS7에서 나에게 효과적이었습니다.

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64

https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths

답변2

존재하지 않습니다(EPEL 저장소도 활성화된 Centos 7 시스템에서).

$ sudo yum whatprovides '*libstdc++*' | egrep -o '3\.4\.[0-9]+' | sort -u
...

따라서 이를 제공하는 저장소를 찾거나 적절한 버전의 라이브러리를 직접 컴파일하고 적절한 버전의 라이브러리를 사용하도록 바이너리를 패치해야 합니다. 또는 3.4.19이것이 위 명령이 나에게 제공한 가장 높은 숫자라고 생각하십시오(Centos 7의 경우, Centos 6 이하에서는 의심할 여지 없이 더 낮은 숫자를 사용할 수 있습니다).

관련 정보