저는 기본적으로 다음과 같은 간단한 makefile을 가지고 있습니다.미리 컴파일 된 헤더는 모든 make에서 생성됩니까?
# Pre-compiled header
CORE_PCH_FILENAME =Core.h
CORE_PCH:
$(CXX) $(CXX_CFLAGS) -x c++-header $(CORE_PCH_FILENAME)
#Objects
obj/%.o: CORE_PCH %.cpp obj/%.d
@mkdir -p obj
$(CXX) $(CXX_CFLAGS) -c $*.cpp -o [email protected]
#Dependencies
obj/%.d: %.cpp
@mkdir -p obj
$(CXX) $(CXX_CFLAGS) -MM -MT obj/$*.o -MF [email protected] $<
제 문제는 처음 만들 때 Core.h.gch가 만들어지고 프로젝트가 만들어집니다. 괜찮아.
그러나 아무것도 변경하지 않더라도 make를 다시 실행하면 Core.h.gch가 다시 만들어지고 모든 것이 다시 컴파일됩니다.
미리 컴파일 된 헤더가 없다면 make는 잘 동작합니다 (아무 것도 변경되지 않은 경우 아무것도 다시 빌드하지 않고 수정이 필요한 경우에만 다시 빌드합니다).
하지만 정말하고 싶습니다. 미리 컴파일 된 헤더를 가지고 있습니다. 제가 제대로하지 않는 것이 있습니까?
편집 :
다음 제안되었습니다 :
# Pre-compiled header
$(CORE_PCH_FILENAME) =Core.h
CORE_PCH: $(CORE_PCH_FILENAME)
$(CXX) $(CXX_CFLAGS) -x c++-header $(CORE_PCH_FILENAME)
그러나 그것은 여전히 때마다 만들어집니다. (
(내 편집을 참조)을 시도했지만;) – zedxz