2010-06-07 74 views
27

在Makefile中,我讀到:rm -rf與-rm -rf

-rm -rf(而不是rm -rf)。第一個「 - 」在Makefile文件的開頭是什麼意思?

+2

製作是一種編程語言,而不是隻是一個工具。 Makefiles是程序!不要說這屬於超級用戶! – 2010-06-07 13:19:25

+0

僅供參考,'\ rm'也可以用來代替'-rm'。 – Dennis 2013-05-04 03:57:26

+0

還要注意讓預定義'$(RM)',你可能想使用,最大的可移植性。 – 2017-07-28 15:12:56

回答

49

這意味着make本身會忽略任何錯誤代碼rm

makefile,如果任何命令,則失敗make過程本身中止處理。通過與-前綴你的命令,你通知make,它應該繼續處理規則不管命令的結果。

例如,makefile文件規則:

clean: 
    rm *.o 
    rm *.a 

刪除*.a文件,如果rm *.o返回一個錯誤(如果,例如,沒有任何*.o要刪除的文件)。使用:

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

將解決該特定問題。


旁白:雖然它可能不是你的具體情況需要(因爲-f標記看起來防止rm從返回時,該文件不存在的錯誤),它仍然是很好的做法,明確標示線在makefile - rm可能會返回在某些情況下其他錯誤,它讓你的意圖明確。

+0

清晰高效!謝謝。 – user255607 2010-06-07 12:43:06

+2

@ user255607(如果這是你的真名)。將其標記爲已回答(答案旁邊的綠色勾號) – Ben 2010-11-04 03:00:36

相關問題