Исправление: цели не указаны и make-файл не найден.



Попробуйте наш инструмент устранения неполадок

Независимо от того, работаете ли вы с Ubuntu, Debian или Red Hat, вы можете увидеть сообщение об ошибке make: *** Цели не указаны и make-файл не найден. Стоп. Поскольку это общая проблема, связанная с GNU Make в целом, вы можете встретить ее в бесчисленных реализациях Unix. Это означает, что в вашем текущем рабочем каталоге нет файла с именем makefile или Makefile. К счастью, эту ошибку легко исправить.



Метод 1: поиск файла Makefile в текущем каталоге

Вы можете попробовать запустить сделать command еще раз в текущем каталоге, чтобы увидеть, возникает ли у вас та же ошибка. Это особенно важно, если вы открыли новое окно терминала и уже пытались найти нужный каталог или если вы использовали команду cd с момента последней попытки запуска GNU make.



Предполагая, что это так, попробуйте запустить ls или же тебе команда, чтобы увидеть, какие файлы находятся в вашем текущем каталоге. Возможно, вы находитесь не в правой части дерева каталогов. Если вы заметили, что видите каталоги, принадлежащие вашему корневому каталогу / или домашнему каталогу, тогда вам нужно запустить команду cd, чтобы расположиться в нужном месте для выполнения команды make.



Есть шанс, что вы окажетесь еще дальше от того места, где ожидали. В нашем примере мы попытались запустить make из каталога / var / crash и обнаружили, что он вообще не работает. Нельзя ожидать, что он запустится отсюда, поскольку единственные файлы в этом конкретном месте взяты из несвязанных отчетов о сбоях.

Скорее всего, вы захотите запустить команду make из каталога, который находится где-то внутри вашего домашнего каталога. Например, если вы собирали последнюю версию GNU nano из исходных текстов, то у вас, вероятно, был бы каталог, расположенный в ~ / nano-2.9.6, в который вы могли бы сделать cd, а затем снова запустить make. Вы можете попробовать бежать ls еще раз, прежде чем вы попытаетесь сделать, чтобы убедиться, что в каталоге есть make-файл, из которого вы собираетесь строить.

Помните, что сначала вам нужно настроить установку. Команда configure создает идеальную среду для процветания компилятора GNU. Если вы не можете найти make-файл даже в правильном каталоге проекта, запустите ./configure пока вы все еще внутри него, а затем сделать команда. Если он компилируется правильно, вы можете установить свой проект с помощью sudo make install , но помните, что вы не хотите создавать что-либо с правами root, поэтому вы никогда не захотите запускать sudo make или что-либо еще, кроме установки.

Метод 2: указание собственного Makefile

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

Вы можете указать собственный make-файл, который будет вызывать что-то иное, чем просто make-файл, используя параметр -f. Например, если у вас есть резервный make-файл с именем makefile.bak, вы можете указать его, запустив сделать -f makefile.bak из командной строки. Вы можете заменить makefile.bak любым именем файла, и вы можете включить опцию -i, если хотите игнорировать ошибки в пользовательском или устаревшем make-файле во время работы компилятора. Обычно это не рекомендуется, так как вы, вероятно, захотите отредактировать свой make-файл, если с ним что-то не так.

Другой очень тесно связанный вариант использования включает ситуацию, когда чувствительность к регистру является проблемой. Ниже перечислены все отдельные файлы в способе ведения бизнеса Unix:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Настроенные пользователем программы могут не распознавать make-файл с нечетными заглавными буквами. Если вы написали его для проекта кодирования, над которым работаете, вы, вероятно, захотите переименовать его в make-файл, хотя вы можете использовать параметр -i, чтобы убедиться, что GNU make сможет его найти. Помните, что если вы все написали правильно, вы все равно можете запустить ./configure из своего собственного проекта, чтобы заставить его сгенерировать правильную среду и избежать этой проблемы.

3 минуты на чтение