이 .d 파일은 파일간의 의존성 관계를 표시하는 파일로 automake 를 통해 컴파일시
gcc 컴파일 옵션 -M 을 사용하는 경우 생성이 된다.
아래는 GNU Make 작성규칙에 대한 내용 중 종속을 자동으로 생성하기에 대한 내용이다.
어떤 프로그램을 위한 makefile에서 여러분이 작성하고자 하는 많은 규칙들은 종종 어떤 오브젝트 파일이 다른 헤더 파일에 의존한다는 것만을 말한다. 예를 들엇 `main.c'이#include
를 통해서 `defs.h'를 사용한다면 여러분은 다음과 같이 쓸 것이다:
main.o: defs.h
여러분은make
가, `defs.h'가 변할 때마다 `main.o'를 반드시 다시 만들어야 한다는 것을 알게 하기 위해서 이 규칙이 필요하다. 어떤 커다란 프로그램에 대해서는 makefile안에 그런 규칙들 수십개를 작성해야 할 것이다. 그리고, 여러분은 항상 makefile을,#include
를 더하거나 제거할 때마다, 조심스럽게 업데이트해야 한다.
이런 고전분트를 피하기 위해서 대부분의 현대 C 컴파일러들은 여러분의 소스 파일에서#include
들을 찾아서, 여러분을 위해서 이런 규칙들 작성할 수 있다. 대개 컴파일러에게 `-M' 옵션을 주어서 이런 일을 할 수 있다. 예를 들어서 다음 명령은:
cc -M main.c
다음과 같은 출력을 생성한다:
main.o : main.c defs.h
그래서 여러분은 더이상 모든 이런 규칙들을 여러분 스스로 작성할 필요가 없다. 컴파일러는 여러분을 위해서 이런 것을 할 것이다.
이를 통해 프로제트의 파일 중 특정 파일이 변경되는 경우, make 유틸은 변경된 파알의 의존성 파일에 관계된 파일만 재컴파일 할 수 있다.
파일의 의존성 관계를 Makefile 내에 표시하는 경우 다음과 같이 할 수 있다.
test.o L test.c config.h env.htest.c 파일은 config.h 파일과 env.h 파일에 의존성 관계를 가지고 있는 것을 의미한다.
댓글 없음:
댓글 쓰기