комната-rf по сравнению с - комната-rf

В Make-файле я читал:

- комната-rf (вместо комнаты-rf). Что делает первое "-", означают в начале строки в Make-файле?

31
задан Daniel Storm 28 July 2017 в 15:00
поделиться

1 ответ

Это означает, что сама make будет игнорировать любой код ошибки из rm .

В make-файле , если какая-либо команда завершается ошибкой, то процесс make сам прекращает обработку. Добавляя к своим командам префикс - , вы уведомляете make , что он должен продолжать обработку правил независимо от результата команды.

Например, правило make-файла:

clean:
    rm *.o
    rm *.a

не удалит файлы *. A , если rm * .o вернет ошибку (если, например, нет файлов *. o для удаления). Использование:

clean:
    -rm *.o
    -rm *.a

решит эту конкретную проблему.


В сторону: Хотя это, вероятно, не требуется в вашем конкретном случае (поскольку флаг -f , по-видимому, не позволяет rm возвращать ошибку, когда файл не существует) , по-прежнему рекомендуется явно отмечать строку в make-файле - rm может возвращать другие ошибки при определенных обстоятельствах, и это проясняет ваше намерение.

55
ответ дан 27 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: