Это означает, что make
само по себе будет игнорировать любой код ошибки от rm
.
Если в makefile
произойдет сбой какой-либо команды, то процесс make
сам прекратит обработку. Приставляя к вашим командам -
, вы уведомляете make
, что он должен продолжить обработку правил независимо от результата выполнения команды.
Например, правило make-файла:
clean:
rm *.o
rm *.a
не не удалит файлы *.a
, если rm *.o
вернет ошибку (если, например, нет файлов *.o
для удаления). Использование:
clean:
-rm *.o
-rm *.a
исправит эту проблему.
В сторону: Хотя это, вероятно, не требуется в вашем конкретном случае (поскольку появляется флаг -f
, предотвращающий возвращение rm
ошибки, когда файл не существует), все же рекомендуется пометить строку в явном виде в makefile
- rm
может при определенных обстоятельствах вернуть другие ошибки, и это прояснит ваше намерение.