2013-11-28 1 views
0

어떻게 이러한 의존성을 해결할 수 있습니까?Makefile 의존성을 해결하십시오.

내 프로젝트에는 모든 파일에 동일한 이름의 헤더 파일이 포함되어 있습니다.

헤더 파일에 다른 헤더 파일 (종속성)이 포함되어 있습니다.

그리고 결국

내가이 종속성이 :
parser.h -> lexer.h -> str.h 
parser.h -> tables.h -> bst.h -> str.h 

그래서 내가 bst.hstr.h 포함되지있을 때, 나는 '알 수없는 유형 이름'오류가 있습니다.

내가 포함 할 때 str.h '입력란 재정의'오류가 발생했습니다.

제가 알고 있듯이, 이것은 Makefile의 올바른 의존성으로 해결할 수 있습니다.

이 전에는 내가 가장 간단했습니다 Makefile (개체 목록, 하나의 명령).

또한 순환 의존성을 해결하는 가장 간단한 방법은 무엇입니까?

instructions.h -> bst.h 
bst.h -> instructions.h 

그래서 내가 지시 프로토 타입에 대한 데이터의 데이터 유형을해야 할뿐만 아니라, 고토 지침 bst.h의 지시에 포인터가 필요합니다.

나는 C99에서 글을 쓰고 있는데, 메이크 파일에서 많은 의존성 변형을 시도했지만 결과는 없다.

미리 감사드립니다. str.h에서 OLI의 의견에 확장

+3

이 방금 필요 메이크 문제가되지 않습니다 * 귀하의 헤더 파일에 가드 *을 포함한다. –

답변

3

는 :

#ifndef __STR_H__ 
#define __STR_H__ 

/* str.h contents here */ 

#endif 
+0

다른 파일에서 다른 이름 ('__BST_H__' 등)을 사용해야합니다. – creichen

+0

@creichen와 Oli : 정말 고마워요! 그것은 매우 유용한 방법입니다. 프로젝트의 모든 파일을 변경하면 모든 것이 잘 작동합니다. –