2017-04-21 11 views
0

:これは常に返しMakefileのエラー1

ifeq ($(RUN_INDEX),1) 
    @echo Removing old index files... 
    -rm *.*dx *.*nd *.ilg 
endif 

「エラー1(無視)」.dxの拡張子を持つファイルのそれぞれの少なくとも一つがなければ、.nd 、またはilg。

これを回避する方法はありますか、それを無視しないことをお勧めしますか?

+0

おかげでリードオンリーメンバー、これはそれをしません。理由を説明できる方法はありますか? –

+0

@ lurkerもしうまくいけば、私はあなたのコメントから答えを出し、そこにいくつかの説明を入れたいと思います。 –

+0

Oopsが誤って最初のコメントを削除しました。 'rm'の' -f'オプションは '' no flack ''と言います...言い換えると、削除するファイルが見つからなければ、エラーを返しません。しかし、私はなぜ '-rm'があなたのために働いていないのか不明です。あなたのメークファイルにもっと大きなコンテキストを表示できますか?目標とは何ですか? '-rm'がなぜあなたのためにやっていないのかについて何の説明もしていないのに、私が質問に答えたということは、本当に快適ではないと感じました。 – lurker

答えて

0

接頭辞はエラーを無視しますが、makeはエラーが発生したというメッセージを書き出します。 (this explanationを参照してください)

には、-fフラグを使用できます。このフラグは "no flack"を意味します:もしあなたが削除したいファイルを見つけることができなかったり、何か他の問題があると、rmはそれにもかかわらず、とにかく成功しません。 makeは誰も賢くないでしょう。

だからあなたのメイクファイルのエントリはこれに変更します。

ifeq ($(RUN_INDEX),1) 
    @echo Removing old index files... 
    -rm -f *.*dx *.*nd *.ilg 
endif 
+0

完璧、多くのありがとう –