디렉토리가 존재하면 삭제해야 한다는 규칙을 작성했습니다.
.PHONY: distclean
distclean:
-rmdir release
make distclean
인쇄:
rmdir release
rmdir: failed to remove ‘release’: No such file or directory
test.mak:3: recipe for target 'distclean' failed
make: [distclean] Error 1 (ignored)
-
이 플래그 로 인해 GNU Make가 이 오류를 무시해야 하지 않습니까 ?
저는 GNU Make 4.0을 사용하고 있습니다.
답변1
Make는 오류를 무시합니다.
make: [distclean] Error 1 (ignored)
여전히 오류 메시지가 인쇄되지만 distclean
대상에 다른 규칙을 추가 하면 rmdir
실패에도 불구하고 계속 처리되어야 합니다.
더 자세하게:
rmdir release
그러면 make
곧 실행될 명령이 인쇄됩니다.
rmdir: failed to remove ‘release’: No such file or directory
존재하지 않기 rmdir
때문에 오류 메시지가 인쇄됩니다 . 이를 제거하려면 명령에 release
추가하거나 완전히 음소거 할 수 있습니다 .2> /dev/null
>& /dev/null
rmdir
test.mak:3: recipe for target 'distclean' failed
rmdir
0이 아닌 종료 코드로 종료되므로 make
오류 메시지가 인쇄됩니다. 이를 제거하려면 || true
명령에 추가해야 합니다 (모든 경우에 0 종료 코드로 종료되도록).
make: [distclean] Error 1 (ignored)
마지막으로 명령 앞에 가 붙어 있으므로 -
오류는 무시되고 make
계속됩니다.