#Что означает ошибка
No rule to make target
make не нашёл файл-зависимость или цель. Проверьте имя, пути и выполнение configure/cmake.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Опечатка | Имя цели отличается от Makefile. | Исправьте регистр и написание цели. |
| Нет configure | Генератор Makefile не запускался. | Выполните configure/CMake согласно README. |
| Файл удалён | Зависимость ссылается на отсутствующий исходник. | Исправьте путь к файлу, make clean его не создаст. |
| Неверный каталог | Сборку запускают вне каталога с правилами. | Перейдите в нужную папку сборки. |
#Пошаговое решение
- Проверьте рабочую папку и файл сборкиОткройте терминал в корне проекта, выполните
pwd(Windows:cd) иls(Windows:dir). В папке должен существоватьMakefile/makefile, либо файл создаётся после запуска CMake илиconfigure. В сообщенииNo rule to make target Xзапишите точноеX: это может быть цель или имя отсутствующего файла. - Посмотрите, какие цели реально объявленыОткройте
Makefileв редакторе и найдите правило видаимя: зависимости; имена чувствительны к регистру. Не предполагая, что цельinstallсуществует, проверьте README проекта. Если ошибка у зависимости, убедитесь, что путь и имя исходного файла корректны после перемещения или переименования. - Если файл генерируется — сначала запустите генераторДля проекта с
CMakeLists.txtиз корня выполнитеcmake -S . -B build, затемcmake --build build. Не запускайтеmakeв пустом корне, если Makefile находится в каталоге сборки. Для Autotools следуйте README по последовательности./configure→make; эти способы альтернативны. - Проверьте результат и оставшуюся цельПовторите точную команду сборки и убедитесь, что нужная цель найдена. Если ошибка остаётся, сохраните строку из Makefile и текущую директорию;
make cleanи удаление каталога сборки без проверки не создают отсутствующее правило.
#Если проблема осталась
Если «make: *** No rule to make target — нет правила для цели» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.