Linuxのコンパイル処理などで自分でMakefileを書いた時、make clean
コマンドを実行すると、以下のようにNo such file or directoryエラーになることがあります。
$ make clean
rm *.o
rm: cannot remove '*.o': No such file or directory
原因
rmコマンドが削除対象ファイルを見つけられなかった為です。
対応方法
rmコマンドで対象ファイルが無くてもエラーメッセージが出ないよう、Makefileの中で実行するrmコマンドに-f
オプションをつけておけばよいです。
clean:
rm *.o
↓
clean:
rm -f *.o
もし、rmコマンドが削除対象ファイルを見つけられずに戻り値として0以外のエラーコードを返すことで、この結果makeコマンド自体がエラーになってしまう場合は、以下のようにrmコマンドの前に"-"をつけるとmakeがrmコマンドの戻り値を無視するようになります。
clean:
-rm -f *.o
こちらもおススメ