Cannot find -lgcc_s 를 어떻게 해결해야 하나요?
안녕하세요. 리눅스 뉴비입니다.
g77 -c -O3 reac.f
g77 -c -O3 poten.f
g77 -c -O3 ffopt.f
g77 -c -O3 shanno.f
g77 -c -O3 version.f
g77 -c -O3 vibra.f
g77 -c -O3 blas.f
g77 -o reac reac.o poten.o ffopt.o shanno.o version.o vibra.o blas.o
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
makefile:11: recipe for target 'reac' failed
make: *** [reac] Error 1
다음과 같은 에러를 해결하려합니다.
윈도우 상에서 ubuntu 18.04 를 설치하고, g77을 이용하여 제가 가진 소스파일을 컴파일하려합니다.
구글링으로 지금까지 여러 문제를 해결해왔지만, 아무리 구글링해도 이 문제를 해결해주지 않았습니다.
지금까지
ln -s /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so /usr/lib/gcc/libgcc_s.so
라던가 gcc-multilib 설치까지 다 완료했지만 해결되지 않았습니다.
sudo /sbin/ldconfig -p | grep libgcc 의 명령어에서는
libgcc_s.so.1 (libc6,x32) => /usr/libx32/libgcc_s.so.1
libgcc_s.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgcc_s.so.1
libgcc_s.so.1 (libc6) => /usr/lib32/libgcc_s.so.1
라고 뜨고있습니다.
find /usr/ -name libgcc* 라고 치면
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/32/libgcc_s_32.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s_32.so
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/7/32/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/7/32/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/7/32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/7/32/libgcc_s.so.1
/usr/lib/gcc/x86_64-linux-gnu/7/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/7/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s.so.1
/usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s_32.so
/usr/lib/gcc/x86_64-linux-gnu/7/libgcc_s_x32.so
/usr/lib/gcc/x86_64-linux-gnu/7/x32/libgcc.a
/usr/lib/gcc/x86_64-linux-gnu/7/x32/libgcc_eh.a
/usr/lib/gcc/x86_64-linux-gnu/7/x32/libgcc_s.so
/usr/lib/gcc/x86_64-linux-gnu/7/x32/libgcc_s.so.1
/usr/lib32/libgcc_s.so.1
/usr/libx32/libgcc_s.so.1
/usr/share/doc/libgcc-4.8-dev
/usr/share/doc/libgcc-7-dev
/usr/share/doc/libgcc1
/usr/share/lintian/overrides/libgcc1
라고 나옵니다. 도대체 어떻게 해결해야할까요... 부탁드립니다.
어떤 코드를 어떻게 빌드하려고 했는데 어떤 에러가
어떤 코드를 어떻게 빌드하려고 했는데 어떤 에러가 났는지 상세히 올려보세요.
코드의 문제는 아닐 것 입니다.
제가 직접 코딩한 것이 아니라, 어떤 프로그램을 컴파일링 하는 것입니다.
g77 -v 로 버전 확인후
g77 -v 로 버전 확인후
32비트 코드 만드는거라면 버전 아래에 32/ 혹은 x32/ 추가요
Written By the Black Knight of Destruction
제가 리눅스 완전 초보라 -L 명령어가 뭔지 잘
제가 리눅스 완전 초보라 -L 명령어가 뭔지 잘 모르겠지만 일단 따라해보았습니다.
입력: g77 -v
결과: gcc version 3.4.6 (Ubuntu 3.4.6-6ubuntu5)
입력: -L/usr/lib/gcc/x86_64-linux-gnu/3.4.6/ -lgcc_s
결과: -bash: -L/usr/lib/gcc/x86_64-linux-gnu/3.4.6/: No such file or directory
제가 뭔가 잘못한 것 같아서 cd /usr/lib/gcc/x86_64-linux-gnu/3.4.6 디렉토리를 옮겨서 저 명령어를 해도 안됩니다.
답변 감사드립니다.
-L 은 명령이 아니라, gcc 에 library 의
-L 은 명령이 아니라, gcc 에 library 의 위치가 어디 있다고 알려주는 옵션 입니다. ^^
/usr/lib/gcc/x86_64-linux-gnu
/usr/lib/gcc/x86_64-linux-gnu/3.4.6/libgcc_s.so 는 심볼릭 링크일텐데, 아래와 같이 링크가 엉뚱한 위치를 가리키고 있을 것입니다.
아래와 같이 실제 파일을 가리키도록 링크를 새로 만드시면 아마 해결될 것입니다.
해결됐습니다.
정말 감사드립니다 선배님.
댓글 달기