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" 메시지에 아예 의심하지 않았다는 것입니다. 항상 선입견·선입관을 조심해야 하는데, ... 프로그래머는 특히요.
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 파일 읽기 함수 read() (0) | 2020.06.28 |
---|---|
라자루스 Ansi to UTF8, UTF8 to Ansi 변환 (0) | 2020.03.18 |
C언어 메모리를 0으로 채움 bzero() 함수 (0) | 2020.03.18 |