2012-07-25 2 views
3

몇 가지 라이브러리를 사용하고 아래 규칙을 사용하여 자동 종속성을 생성합니다. 부스트 헤더가 컴파일을 느리게하는 이유는 종속성이 Makefile에 포함되어 있지 않기 때문에 프로젝트를 컴파일하는 데 10 배 더 빠르기 때문입니다. 생성 된 종속성으로 속도를 높이는 방법이 있습니까?자동으로 생성 된 종속성으로 인해 컴파일이 느려짐

%.o: %.cc 
    $(CXX) $(CFLAGS) $(INCLUDES) -MD -c $< -o [email protected] 
    @mv $*.d .deps/ 
    @cp .deps/$*.d .deps/$*.tmp 
    @sed -e 's;#.*;;' -e 's;^[^:]*: *;;' -e 's; *\\$$;;' \ 
    -e '/^$$/d' -e 's;$$; :;' < .deps/$*.tmp >> .deps/$*.d 
    @rm .deps/$*.tmp 
+3

부스트 헤더를 변경하지 않을 가능성이 있으므로 종속성으로 추가 할 이유가 없습니다. 따라서 부스트 헤더 (및 다른 시스템 헤더도 제외)를 제외 할 수있는 방법을 찾을 수 있습니다. –

+0

(내 질문에 대한 답변이 삭제되었습니다.) 개인적으로 필자는'src '를 1 초 미만으로 스캔하고 매우 평범한 ('''''''''''''''''''''''''''''''''''''''''''''Makefile을 사용합니다. – Oleg2718281828

+0

나는 레이크 빌드를위한 의존성 파일을 생성하기 위해 루비에서 같은 작업을했다. <> 대괄호 안에 모든 포함을 생략합니다. –

답변

2

부스트 헤더를 변경하지 않으려는 경우 종속성으로 추가 할 이유가 없습니다. -MMD를 사용하여 종속 파일을 생성하면 시스템 헤더를 무시해야하므로 의존성 파일이 작아집니다. 즉, 파일이 최신 상태인지 여부를 확인하기 위해 하드 드라이브를 적게 스캔해야합니다. 물론 머리글을 포함하지 않으려면 <> ""이 (가) 아닙니다.

관련 문제