Что такое фатальная ошибка: *** Нет правила для установки цели. Стоп - PullRequest
0 голосов
/ 20 апреля 2019

Ошибка возникает, когда я пытался запустить команду make install в Ubuntu 16.04, что

*** No rule to make target 'install'. Stop.

Я уже выполнил команду make с несколькими ошибками fatal: bad revision 'HEAD',что не привело к остановке команды.Я понятия не имею, имеют ли значение эти ошибки.

мои коды makefile:

SUBDIRS := $(wildcard */.)

all: $(SUBDIRS)

$(SUBDIRS):
    make -C $@

install:
    for dir in $(SUBDIRS); do \
        make -C $$dir install; \
    done

.PHONY: all $(SUBDIRS)

В частности, я хочу знать, как работает make-файл после install:.

Проект должен установить приложение на подключенном телефоне Nexus 5. Но на самом деле такого приложения на моем телефоне нет.

1 Ответ

0 голосов
/ 22 апреля 2019

Полагаю, ваш Makefile правильно отформатирован, с вкладками, где они должны быть, и т. Д.

Затем, когда вы запускаете make install в каталоге верхнего уровня, у вашего Makefile есть правило, чтобы сделать цель install:, в которой говорится, что нужно выполнить цикл в ваших подкаталогах, ввести каждый из них и запустить make install там (это то, что делает опция -C). Одна из этих подзадач завершается неудачей, скорее всего потому, что в соответствующем подкаталоге она не находит Makefile с рецептом install. В случае сбоя подкоманды цикл продолжается с остальными подзадачами (если оболочка не получила других инструкций с помощью переключателя -e), а конечный код возврата всего рецепта будет кодом возврата последний субмейкер.

Есть некоторые моменты, которые стоит обсудить в вашей Makefile (например, install должен быть указан как цель .PHONY), но вы не предоставляете достаточно информации, чтобы прояснить их: например, действительно ли это необходимо чтобы оболочка проходила по подкаталогам в определенном порядке? Как правило, лучшей политикой является make распараллеливание подмоделей при любой возможности (и, как побочный эффект, make остановка при неудачном завершении первого подмейка ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...