Ошибка «recipe commences before first target. Stop» в Makefile возникает, когда первое, что есть в файле, выглядит как часть рецепта, начинается с символа префикса и не выглядит как допустимая директива make (например, присвоение переменной). www.gnu.org microsin.ru
Некоторые возможные причины появления ошибки:
- Использование пробелов вместо символа табуляции. www.gnu.org microsin.ru Каждая строка рецепта должна начинаться символом табуляции (за исключением ситуации, когда установлена переменная .RECIPEPREFIX). www.gnu.org microsin.ru
- Точка с запятой как первый символ, не относящийся к пробелу. www.gnu.org microsin.ru Make интерпретирует это как то, что не указана секция правила «target: prerequisite». www.gnu.org microsin.ru
- Опечатки в Makefile (неправильное имя файла). www.gnu.org microsin.ru
- Повреждение дерева исходного кода (если файл не должен быть построен, а скорее только является prerequisite). www.gnu.org microsin.ru
- Несовместимость версий Make, например, если используемая версия не совместима с версией, которую использовал автор проекта. stackoverflow.com
Для устранения ошибки рекомендуется проверить формат Makefile, например, не изменялись ли окончания строк, символы пробела и табуляции. stackoverflow.com