2010-06-07 3 views
27

, 내가 읽어RF RM은 대 -rm -rf 메이크에서

-rm -rf (대신은 rm -rf의). 첫 번째 "-"는 Makefile의 줄 시작 부분에서 무엇을 의미합니까?

+2

make는 유틸리티가 아닌 프로그래밍 언어입니다. Makefile은 프로그램입니다! 이것이 수퍼 유저에 속한다는 말을하지 마십시오! –

+0

FYI,'\ rm'은'-rm' 대신에 사용될 수도 있습니다. – Dennis

+0

또한 이식성을 최대화하기 위해 Make가'$ (RM)'을 미리 정의한다. –

답변

49

즉, makerm의 오류 코드를 무시합니다.

makefile에서 명령이 실패하면 make 프로세스 자체가 처리를 중단합니다. 명령 앞에 -을 붙이면 명령 결과에 관계없이 계속 처리해야 함을 make에 알립니다. 예를 들어

, 메이크 규칙 :

clean: 
    rm *.o 
    rm *.a 

것이다 (예를 들어, 어떤 *.o 파일 삭제가되지 않습니다, 경우) rm *.o가 오류를 반환하는 경우하지*.a 파일을 제거합니다. 사용 :

clean: 
    -rm *.o 
    -rm *.a 

이 문제를 해결합니다.


제외 : 그것은 아마 당신의 특정한 경우에 필요하지 않은 것 만합니다 (-f 플래그는 파일이 존재하지 않는 오류를 반환에서 rm을 방지하기 위해 나타납니다 때문에), 명시 적으로 라인을 표시하는 여전히 좋은 방법이다makefile - rm의 경우 특정 상황에서 기타 오류가 반환 될 수 있으며 이는 사용자의 의도를 분명히합니다.

+0

명확하고 효율적인! 고마워. – user255607

+2

@ user255607 (귀하의 실명 인 경우). 답변으로 표시 (답변 옆에 녹색 체크) – Ben

관련 문제