Gnu-Make
GNU Make 不會忽略失敗的命令
我寫了一個規則,如果目錄存在,則應將其刪除:
.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。
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
以非零退出程式碼退出,因此make
列印錯誤消息。要刪除它,您將添加|| true
到命令中(以便它在所有情況下都以零退出程式碼退出)。make: [distclean] Error 1 (ignored)
最後,由於命令以 為前綴
-
,因此錯誤被忽略並make
繼續。