undefined reference to `pow'
undefined reference to `pow' 에러 내용
undefined/usr/bin/ld: /tmp/ccYCeyJA.o: in function `main':
main.c:(.text+0x115): undefined reference to `pow'
collect2: error: ld returned 1 exit status
gcc/g++ 컴파일 시 #include <math.h> 와 -lm 플래그를 사용해도 위와 같은 오류가 출력됩니다.
undefined reference to `pow' 에러 원인
-lm 플래그의 위치가 중요하기 때문입니다.
링커는 명령줄에 지정된 순서대로 목적 파일(object)과 라이브러리를 처리하기 때문입니다.
따라서 목적 파일을 가장 나중에, 목적 파일에 연결해야하는 라이브러리는 그보다 앞에 와야 합니다.
undefined reference to `pow' 해결 방법
-lm 플래그의 위치를 목적 파일 앞으로 옮깁니다.
gcc -std=c99 main.c -lm -o code
g++ -std=c++0x main.c -lm -o code
참고 자료
댓글