우분투야 너는 대체 왜 libstdc++을 찾지를 못하느냐…
“error while loading shared libraries:
libstdc++.so.5: cannot open shared object file: No such file or directory”
Synaptic을 사용하지 않고, 바이너리 파일을 다운받아서 설치를 할 경우에 심심치 않게 보는 에러입니다.
보시는 바와 같이 라이브러리 경로상에 libstdc++ 가 없기때문입니다.
저는 J2EE를 깔기 위해서 이녀석과 싸웠는데, 많은 사람들이 이녀석때문에 짜증을 경험하고 이녀석을 얻는 방법을 올려주셨더라고요.
일반적으로 많이 올려주신 방법으로는 (1) 쉘창에서 aptitude 명령을 통해 얻는 방법이 있습니다.
~#> aptitude install libstdc++
을 할경우엔 현재에는 libstdc++6 가 깔리게 됩니다. 일반 Karmic 저장소에 version 6 이 있기 때문입니다.
그러나 J2EE는 libstdc++5만을 원하기 때문에, 성질머리를 맞춰주기 위해서… 우리는 version 5를 구해야만 합니다.
(대부분의 많은 프로그램들은 libstdc++6으로 설치가 되긴 합니다. 그러나, 몇몇의 소프트웨어는 libstdc++5를 연결해줘야만 합니다. Sun의 J2EE가 바로 그렇습니다.)
(2) 아래의 방법으로 libstdc++5를 구하시면 됩니다.
1. deb 패키지를 다운로드합니다.
~#> wget -c http://lug.mtu.edu/ubuntu/pool/main/g/gcc-3.3/libstdc++5_3.3.6-10_amd64.deb
2.패키지 압축을 풉니다.
~#> dpkg -x libstdc++5_3.3.6-10_amd64.deb libstdc++5
3. /lib 로 libstdc++라이브러리를 복사합니다.
~#> sudo cp libstdc++5/usr/lib/libstdc++.so.5.0.7 /lib
4. /lib 로 이동한 후에 심볼릭(symbolic) 링크를 걸어줍니다.
/lib#>sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
(예제 에서는 일반적인 라이브러리 경로인 /lib로 복사하였지만, /usr/lib 이나 /lib32등 설치 프로그램이 찾는 PATH로 넣어주시는 것이 좋습니다. ldd 명령어로 확인하고 복사하세요.)
이와 같은 방법으로 libstdc++를 필요로하는 Binary install 프로그램들을 설치 하실수 있습니다.