리눅스에서 c 프로그래밍할 때 reference 에러
글쓴이: 천재태지서주영 / 작성시간: 일, 2003/04/06 - 10:52오후
안녕하세요? 맨날 VC 에서 C 짜다보니 바보가 되는거 같네요 ㅡ_ㅡ;;
다음과 같은 간단한 코드를 VC 에서 하니 잘 돌아가는데
#include <stdio.h> #include <math.h> int main() { printf("%lf",pow(3,5)); return 0; }
리눅스에서 GCC(gcc version 2.96 20000731) 로 컴파일하니까
Quote:
/tmp/cccUB95O.o: In function `main':
/tmp/cccUB95O.o(.text+0x1b): undefined reference to `pow'
collect2: ld returned 1 exit status
이런 오류가 뜹니다.
라이브러리 include 에러는 안나는거 보니 math.h 도 include 된거 같은데 왜 pow 를 못찾겠다는건지 모르겠네요...
그래서 /usr/include/math.h 를 열어보니 pow 관련 내용이 없네요.
윈도에선 math.h 를 열어보니까 pow() 관련 부분이 많던데..
결국 리눅스에선 뭔가 다른 점이 있다는건데...
표준 ANSI C 라이브러리를 봐도 math.h 에
double pow(double x, double y);
가 있는데...? 뭐가 어떻게 된건지 조언 부탁드립니다. ^^
Forums:
고전적인 질문이군요.. ㅡㅡ;
gcc source.c -lm
man 페이지에서 해당 함수를 위해 사용해야 할 별도의 라이브러리가 있는
man 페이지에서 해당 함수를 위해 사용해야 할 별도의 라이브러리가 있는지 확인해 합니다. 위의 답변에서 처럼 -lm 을 링크해야 합니다.
아.. 그렇군요.
아... ^^
그렇군요 libm.a 라이브러리를 지정해줘야 math.h 에 있는 pow() 를 쓸 수 있군요.
참고로 libc.a 는 gcc 에서 기본적으로 include 된다는 것두 알았네요 ^^
답변 해주신 분들 감사합니다~
천재태지서주영
댓글 달기