본문 바로가기

Error and Solve

[에러 해결] libstdc++.so.6: version `GLIBCXX_3.4.29' not found / pip install --upgrade

반응형

 

 

libstdc++.so.6: version `GLIBCXX_3.4.29' not found

 

libstdc++.so.6: version `GLIBCXX_3.4.29' not found

 

libstdc++.so.6: version `GLIBCXX_3.4.29' not found

 

코드를 돌리는 중 libstdc++ not found 에러가 떴다 

 

해결할 수 있는 방법은 크게 두 가지 있다

 

 

 

 

 

 

해결1: 패키지 업그레이드 

 

 

패키지 업데이트  

 

보통 이 에러가 나는 이유는 패키지가 최신 버전이 아니라서다 

 

pip install -U --force-reinstall scipy
pip install --upgrade pandas

 

순서대로 실행해보고 안되면 pip 자체를 업그레이드 하는 등의 조치를 취해야 한다.

 

 

 

 

ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/{user}/.conda/envs/{envname}/lib/python3.8/site-packages/kiwisolver/_cext.cpython-38-x86_64-linux-gnu.so)

 

이처럼 특정 패키지에서 찾지 못한다고 한다면 이 패키지를 pip install -U 를 계속 해주면 된다. 

 

pip install -U kiwisolver

 

pip install -U kiwisolver



위 에러 메시지를 보면 kiwisolver 패키지에서 에러가 났으므로, pip install -U kiwisolver를 해준다.

 

 

 

 

 

 

 

 

 

해결2: 하드하게 파일 옮기기

 

패키지를 업그레이드 해도 에러가 난다면, 경로에 맞게 파일을 옮겨줘야 한다 

 

 


1. 파일 확인하기

 

strings /home/{user}/.conda/envs/{envname}/lib/libstdc++.so.6 | grep GLIBCXX

 

strings /home/{user}/.conda/envs/{envname}/lib/libstdc++.so.6 | grep GLIBCXX

 

여기서 ~ 경로에 맞춰 user를 바꾸고 실행하고 있는 conda env name에 맞춰 envname을 바꿔 명령어를 친다. 

 

그러면 conda env에 못찾아서 오류가 났던 파일 GLIBCXX_3.4.29 가 잘 있는지 우선 확인한다. 

 

 

 

 

 

 


2. 에러나는 경로에 있는 파일은 지우

 

rm /lib/x86_64-linux-gnu/libstdc++.so.6

rm /lib/x86_64-linux-gnu/libstdc++.so.6

 

 

 

에러가 나고 있는 libstdc++.so.6 파일을 지운다. 여기 경로는 conda가 아니라 /lib에 있는 파일이다.

 

 

 

 

 

 


3. 복사하거나 link로 연결하기

 

cp /home/{user}/.conda/envs/{envname}/lib/libstdc++.so.6 /lib/x86_64-linux-gnu

cp /home/{user}/.conda/envs/{envname}/lib/libstdc++.so.6 /lib/x86_64-linux-gnu

 

 

 

아까 envs 밑에 있던 파일을 lib/x86~ 경로로 옮겨준다. 

 

복사하지 않고 ln -s 로 심볼릭 링크를 거는 방법도 있다. 

 

 

 

 

 

 

 

 

두번째 방법은 /lib을 건드리는 것이기 때문에 추천하지 않고,

되도록 패키지를 업그레이드해서 해결하는 것이 좋다 

 

 

 

 

 

 

 

 


 

Reference

 

https://github.com/pybind/pybind11/discussions/3453

 

libstdc++.so.6: version `GLIBCXX_3.4.29' not found · pybind pybind11 · Discussion #3453

I run this in pybind11 mkdir build cd build cmake .. make check -j 4 got ERROR: ...... Traceback (most recent call last): File "/home/shizuku/code/python/pybind11/tests/test_cmake_build/subdirector...

github.com

 

 

 

 

끝.

 

 

반응형