문제

makefile에는 다음 줄이 있습니다.

helper.cpp: dtds.h

DTDS.H가 변경 될 때마다 Helper.cpp가 재건되도록합니다. 그러나 두 개의 다른 헤더 파일 중 하나가 변경되면 프로젝트의 모든 파일이 재건되기를 원합니다.

*.cpp: h1.h h2.h

분명히 그것은 효과가 없지만 NMake가 내가 원하는 것을 할 수있는 올바른 방법을 모르겠습니다. 누군가 도울 수 있습니까? 각 개별 파일이 H1.H 및 H2.H에 의존하도록 수동으로 지정하고 싶지 않습니다.

감사. (Visual Studio 2005에 포함 된 Nmake를 사용하고 있습니다.)

도움이 되었습니까?

해결책 2

도와 주셔서 감사합니다, Christoph. 나는 시도했다 :

.cpp.obj: h1.h h2.h

유용한 오류 메시지를 받았습니다.

makefile(58) : fatal error U1086: inference rule cannot have dependents

컴파일하려는 파일 목록을 작성한 다음 전체 목록에 종속성을 추가하여 해결했습니다.

files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h

다른 팁

노력하다

%.cpp : h1.h h2.h

그것은 GNU에서 작동합니다 - Nmake가 호환되는지 전혀 모른다 ...

편집하다: 그리고 BTW : 그렇지 않아야합니다

helper.o : dtds.h

%.o :  h1.h h2.h

결국, 당신은 다시 메이크를하고 싶지 않습니다 .cpp 파일 (소스 파일을 어떻게 만드십니까?) 그러나 다시 컴파일하는 ...

edit2 : 을 체크하다 nmake 참조. 에 따르면 이것, 같은

.cpp.obj: h1.h h2.h

작동 할 수도 있습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top