2013-03-10 4 views
0

큰 프로그램 (예 : gcc 또는 clang)을 컴파일하면 컴퓨터가 과열되어 강제로 종료 될 수 있습니다.갑자기 끝난 컴퓨터에서 복구

내가 방치 한 곳에서 make 과정을 재개하고 싶습니다. 문제는 거기에 완료/작성된 나머지 절반의 원인이있는 것 같습니다 (이유는 내가 지정했을 때 이것은 특히 나쁘다)

이 문제를 쉽게 해결할 수있는 방법이 있습니까? 문제 (make clean 또는 make distclean 등을 수행하는 동안)? 3.81

+0

아마도 쉬운 방법은 아니지만 ... 주어진 개체 파일이 완료되었음을 나타내는 마커 파일을 가질 수 있습니다. 'foo_done : foo.cc와 같은 것 gcc $ <-o foo.o touch $ @' – Beta

+0

@ 베타 makefile을 작성하지 않았습니다. 어떻게 제네릭 메이크 파일을 구현할 수 있습니까? – soandos

+0

메이크 파일을 수정하지 않고 사용 하시겠습니까? 나는 네가 할 수 있다고 생각하지 않는다. 그냥'make clean'을하십시오. 컴퓨터의 평균 고장 간격이 빌드 시간보다 짧으면 큰 문제가 있습니다. – Beta

답변

1
베타의 의견과 같은 라인을 따라

하지만 확인 GNU를 사용

믿을 수 있고 IMO 덜 혼란, 그런 다음 마지막에 이름을 변경, 임시 파일에 컴파일 있도록 컴파일 규칙을 변경하는 것 진짜 파일에. 당신과 같이있을 수 있습니다 어디 그럼 : 당신은 나 "@ RM -f $"뿐만 아니라를 추가하지 않을 수 있습니다

%.o : %.c 
     $(CC) $(CFLAGS) $(CPPFLAGS) -o [email protected] -c $< \ 
      && mv -f [email protected] [email protected] 

:

%.o : %.c 
     $(CC) $(CFLAGS) $(CPPFLAGS) -o [email protected] -c $< 

을 대신 당신은 같은 것을 사용합니다.

"프로그래밍 방식으로"이 변경을 할 수 있는지 여부는 모두 사용자의 메이크 파일과 구조에 따라 다릅니다. 이것이 잘 구성된 메이크 파일이라면 위와 같이 몇 가지 암시 적 규칙을 통해 몇 가지 위치에서 이러한 변경 작업을 수행 할 수 있습니다.