Circular xxx <- xxx dependency dropped. 오류 해결
- Tae Yeong Son
- 2016년 1월 22일
- 1분 분량
아래와 같은 파일 목록을 가지고 있는 프로그램을 작성하였습니다. 그래서 컴파일을 하던 도중에 발생한 오류를 해결한 방법에 대해 적어 보고자 합니다.

make[5]: Circular /nfs/fafs/T014_network_cmd_add_time/network_proc/network_proc.o <- /nfs/fafs/T014_network_cmd_add_time/network_proc/network_proc.o dependency dropped.
오류의 내용은 위에 내용입니다. 검색을 해보니 대충 'network_proc.o'라는 파일이 다시 또 'network_proc.o'라는 파일의 무엇을 호출하여 뱅글뱅글 돈다는 의미입니다.
하지만 이 경우에 소스코드를 보아도 문제점을 찾기 어렵습니다. 왜냐면 다시 호출하지 않을 경우가 많을테니까요. 의외로 이 문제점은 간단한 곳에 있었습니다.

이 부분은 Makefile입니다. Makefile과 파일 목록을 잘 보시면 network_proc.c 라는 파일이 보이실텐데요. 저는 이것을 생각하고 "$(MODULE_NAME)-objs += network_proc.o" 라는 부분을 작성하였습니다. (위 사진의 빈 줄 포함 6줄) 하지만 첫번째 줄을 보면 "MODULE_NAME = network_proc" 이라고 되어 있습니다. 결국 모듈 이름과 새로 만들려고 했떤 파일의 이름이 같아지게 됩니다.
그래서 이 문제를 해결하기 위해 이름을 바꾸고 make를 실행해 보았습니다.

위와 같이 파일명을 바꾸고 아래와 같이 Makefile을 수정 했습니다. 안 겹치게요

그랬더니 저는 다른 문제가 생겼네요... 일단 이것 좀 고치고 봅시다...;;;