0
如果我有這樣的一個Makefile:Makefile文件錯誤1
ifeq ($(RUN_INDEX),1)
@echo Removing old index files...
-rm *.*dx *.*nd *.ilg
endif
這總是返回「錯誤1(忽略)」,除非有每個具有擴展名的文件中的至少一個.dx,.nd或.ilg。
有沒有辦法避免這種情況,還是建議不要忽略它?
如果我有這樣的一個Makefile:Makefile文件錯誤1
ifeq ($(RUN_INDEX),1)
@echo Removing old index files...
-rm *.*dx *.*nd *.ilg
endif
這總是返回「錯誤1(忽略)」,除非有每個具有擴展名的文件中的至少一個.dx,.nd或.ilg。
有沒有辦法避免這種情況,還是建議不要忽略它?
-
前綴將忽略錯誤,但make
仍會寫出錯誤發生的消息。 (請參閱this explanation。)
但是,您可以使用rm
上的-f
標誌。這個標誌的意思是「沒有flack」:如果rm
無法找到你想要刪除的文件,或者有其他問題,它不會抱怨,只是成功。而make
將不會更聰明。
所以你的makefile條目改成這樣:
ifeq ($(RUN_INDEX),1)
@echo Removing old index files...
-rm -f *.*dx *.*nd *.ilg
endif
完美無瑕,非常感謝 –
由於潛伏者,這樣做吧。有什麼辦法可以解釋爲什麼? –
@lurker如果它有效,我會從你的評論中作出回答,並在其中提出一些解釋。 –
哎呀錯誤地刪除了我的第一條評論。 'rm'上的'-f'選項表示「不存在」......換句話說,如果它找不到要刪除的文件,它將不會投訴並且不會返回錯誤。然而,我很困惑爲什麼'-rm'不適合你。你能在你的makefile中顯示更大的上下文嗎?目標和整套命令的外觀如何?我沒有真正感到舒服的說我回答了這個問題,而沒有解釋爲什麼'-rm'沒有爲你做。 – lurker