728x90
반응형

발생한 오류

libstdc++.so.6 파일을 찾을 수 없다는 것을 의미하며, 주로 C++ 프로그램을 실행할 때 필요한 C++ 표준 라이브러리 파일이 시스템에 없거나 설치 경로에 없을 때 발생한다. 

본인의 경우에는 우분투 환경에서 어떤 패키지나 라이브러리를 설치하려고 해도 아래 오류가 계속 출력되는 현상이 발생하였었다. 

Libstdc++.so.6: cannot open shared object file: No such file or directory

 

(미)해결 방법1

스택오버플로우에서 좋아요를 많이 받은 방법이다. 많은 사람들이 아래 명령어로 해결을 한 것 같은데 본인의 경우에는 lib32stdc++6 설치를 진행할 때에도 오류가 계속 출력되어 결국 다른 방법으로 해결하였다. 

apt-get install lib32stdc++6

 

해결 방법2

결국 libstdc++.so.6를 복구하는 방법을 시도하여서 해결하였다. 

 

라이브러리 위치 확인

필자의 경우에는 libstdc++.so.6가 아래 경로에 위치하였다. 

ls /usr/lib/x86_64-linux-gnu/libstdc++.so.6

 

파일 권한 확인

다음 명령문으로 libstdc++.so.6가 libstdc++.so.6.0.xx으로 연결된 파일이 존재하는지 확인한다. 

ls -l /usr/lib/x86_64-linux-gnu/libstdc++.so.6

필자는 위 명령문에 대한 출력이 다음과 같이 나왔었는데 다음 경로는 일반적인 라이브러리 경로가 아니기 때문에 경로를 해제하고 다시 설정해 주는 작업이 필요했었다. 

~~ -> /home/runner/.local/share/r-miniconda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++/so.6.0.30

 

현재 심볼릭 링크 확인 및 삭제

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

 

올바른 경로로 심볼릭 링크 생성

아래 명령문으로 현재 시스템에서 libstdc++.so.6 파일이 있는지 확인한다. 

libstdc++.so.6.0.30 또는 libstdc++.so.6.0.28와 같은 파일이 존재해야 한다. 

ls /usr/lib/x86_64-linux-gnu/libstdc++.so.6*

 

파일이 존재하는 경우, 해당 파일을 가리키도록 새로운 심볼릭 링크를 생성한다. 

xx는 실제 존재하는 파일로 작성해 주면 된다.

sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.xx /usr/lib/x86_64-linux-gnu/libstdc++.so.6

 

복구 후 재부팅

재부팅이 끝나면 더 이상 오류가 발생하지 않고 제대로 설치되는 것을 확인할 수 있다. 

sudo reboot

 

 

Reference

https://stackoverflow.com/questions/11471722/libstdc-so-6-cannot-open-shared-object-file-no-such-file-or-directory

 

728x90
반응형
LIST
성장중 •͈ᴗ•͈