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