/usr/bin/ld: cannot find -lstdc++ 에러 메시지
안녕하세요.
리눅스 초보입니다.
ncurses 프로그램 설치 중에 다음과 같은 에러메시지가 발생하였습니다.
OS는 CentOS 5.4 입니다.
-------- 에러 메시지 내용 --------
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make[1]: *** [demo] 오류 1
make[1]: Leaving directory `/opt/ncurses-5.7/c++'
make: *** [all] 오류 2
---------------------------
구글로 메시지 내용을 보니, lstdc++ 파일을 찾아 링크할 수 없다는 내용이더군요.
그러나, lstdc++은 '/usr/lib/gcc/i386-redhat-linux/3.4.6' 하위 디렉토리에 있습니다.
'/usr/lib/gcc/i386-redhat-linux/3.4.6' 의 하위파일은 다음과 같습니다.
include libg2c.a libstdc++.a libstdc++_nonshared.a libsupc++.a
libfrtbegin.a libg2c.so libstdc++.so libstdc++_shared.so
따라서 다음과 같이 시도하였으나 아직도 해결이 안되었습니다. 도움 부탁드립니다.
시도 1. vi bashrc 로 경로 설정
PATH: export LD_LIBRARAY PATH=$LD_LIBRARY_PATH:/usr/lib/gcc/i386-redhat-linux/3.4.6/
시도 2. linking
/usr/bin 에서 링크 시도
ln -s lstdc++ /usr/lib/gcc/i386-redhat-linux/3.4.6/listdc++.so
소중한 시간 할애하여 읽어주셔서 감사합니다. _()_
혹시 gcc로 컴파일한거 아닌가여?
g++로 컴파일하면 stdc++ 자동으로 링크해줍니다.
-
그리고
/usr/bin 에서 링크 시도
ln -s lstdc++ /usr/lib/gcc/i386-redhat-linux/3.4.6/listdc++.so
===
이렇게 하면 100%안됩니다!!
굳이 하려면 ln -s /usr/lib/gcc/i386-redhat-linux/3.4.6/listdc++.so /usr/local/lib
로 해야 합니다.,
lstdc++
이런 파일이 존재하는게 아니고
-l이란 옵션이 라이브러리 지정해주는 옵션입니다.
libstdc++.so란 파일과 링크하라는 옵션입니다.
즉 libstdc++.so란 파일을 찾아야 합니다
즐린
즐린
설치 되었습니다.
설치 되었습니다.
해결 방법은 libstdc++-devel
라이브러리를 설치 해서 해결하였습니다.
이전에는 compact-libstdc++ 을 yum 을 이용하여 설치하였으나 libstdc++-devel을 다시 설치 하니 컴파일이 되네요.
감사합니다. ^^
저와같은 오류가 나오신 분들은 꼭 devel 라이브러리를 설치 해 보시면 도움이 될것같습니다.
덕분에 해결합니다.
저도 같은 오류인데..(Centos 6.5) libstdc++-devel을 설치해도 해결이 안되었다가 libstdc++-devel.i686 을 추가로 설치해서 해결되었습니다.
고맙습니다.
댓글 달기