Тестирование компиляции программы
Обычно, когда при выполнении командной оболочки возникает ошибка, make сразу же прекращает работу, возвращая ненулевой статус. Дальнейшие действия для любого целевого файла не выполняются. Ошибка подразумевает, что цель не может быть правильно пересобрана, и make сообщает об этом как только узнает.
Когда вы компилируете только что изменённую программу, этого не требуется. Вместо этого вы предпочтёте, чтобы make попытался скомпилировать каждый файл, который можно скомпилировать, чтобы показать как можно больше ошибок компиляции.
В таких случаях необходимо использовать флаг «-k» или «--keep-going». Это сообщает make продолжать учитывать другие предшественники ожидаемых целей, пересобирая их при необходимости, прежде чем прекратить работу и вернуть ненулевой статус. Например, после ошибки при компиляции одного объектного файла, «make -k» продолжит компиляцию других объектных файлов, даже если уже известно, что их связывание невозможно. Помимо продолжения работы после неудачных команд оболочки, «make -k» продолжит работу по возможности после обнаружения того, что оно не знает, как создать целевой файл или файл-предшественник. Это всегда вызовет сообщение об ошибке, но без «-k» это фатальная ошибка (см. Сводку опций).
Обычное поведение make предполагает, что вашей целью является обновление целей; как только make узнаёт, что это невозможно, оно может сразу же сообщить об этом.
Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Testing.html