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

ToastCookie·2022년 1월 5일

해결법

목록 보기
1/5
  1. find / -name "libstdc++.so.6*"
    최신 libstdc++이 있는지 확인

  2. 그것이 /usr/lib64/libstdc++.so.6 이랑 링크 돼있는지 확인
    ll /usr/lib64/libstdc++.so.6

  3. 예시 : strings /usr/lib64/libstdc++.so.6.0.19 | grep GLIBCXX
    이것으로 libstdc++ 내부에 GLIBCXX Version이 어디까지 포함되어있는지 확인가능.

  4. GLIBCXX_3.4.21 이 없다면 glibc update 필요.

  • 해당 Error는 tensorflow 사용중 나타난 Error
    tensorflow에서 basic_string을 undefined reference하고 GLIBCXX_3.4.21 같은 것이 뜬다면 build 시에 GCC version을 뭐 사용하는지 확인해보는 것이 좋음.
    -> gcc --version과 상관없이, cmake 할때
    -- The C compiler identification is GNU 4.8.5
    -- The CXX compiler identification is GNU 4.8.5
    같은 경우처럼 뜨는 경우도 있음 이럴땐 rpm -qa | grep gcc 로 설치된 gcc 확인해보고 쓸모없는 gcc version은 삭제해두는게 좋음.

    --> 원인 설명 : https://yonomi.tistory.com/390
    --> Dual ABI https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

profile
오류 답안지

0개의 댓글