undefined reference to symbol 'ceil@@GLIBC_2.4' 해결 방법은?

2020. 6. 16. 12:09 컴퓨터/프로그래밍

undefined reference to symbol 'ceil@@GLIBC_2.4'

문제없던 소스 파일에 수학 함수를 추가했더니 컴파일 에러가 발생합니다. 그런데 처음 보는 메시지예요. undefined reference to symbol 'ceil@@GLIBC_2.4' 응? 뭐지?

Makefile을 다른 분이 만들어 준 것을 사용하고 있는데요, 한 개의 파일이 아니라 여러 개로 나뉘어서 복작하게 구성되어 있네요. 그래서 어떤 문제가 있는지 쉽게 알 수 없었는데요, 자세히 보니 컴파일 에러가 아니라 링크 에러입니다. 그렇다면 ceil() 함수를 담고 있는 수학 함수 라이브러리가 빠쪘나 했지만, 그럴리가.

더욱이 바로 아래 행에 "gnueabi/lib/libm.so.6: error adding symbols: DSO missing from command line" 이라는 내용에 착각을 하고 말았습니다. libm.so.6를 수학 함수 라이브러리로 오해한 것이죠. 한참을 헤매고서야 동료의 도움으로 잘못된 생각이었고 링크 옵션에 -lm이 빠졌다는 것을 알았습니다.

즉, 해결 방법은 수학 함수 ceil()을 사용하니 당연히 링크 옵션에 -lm을 넣으면 됩니다.

아~ 이렇게 허무할 수가. 항상 넣는 링크 옵션이라 당연히 다른 분도 꼭 사용할 것이라는, 아니 이런 생각도 하지 않은 잘못이었습니다. 더욱 한심한 것은 "libm.so.6" 메시지에 아예 의심하지 않았다는 것입니다. 항상 선입견·선입관을 조심해야 하는데, ... 프로그래머는 특히요.

이 댓글을 비밀 댓글로

티스토리 로그인이 풀리면 여기를 클릭하세요.

error: Content is protected !!