Мое понимание неявного правила заключается в том, что неявное правило будет использоваться только в том случае, если нет явного правила, соответствующего цели. Если есть как явное, так и неявное правило, соответствующие цели, то будет использоваться явное правило, а неявное правило будет проигнорировано.
Но выполнение следующего примера показывает, что используется неявное правило, а пустое явное правило не используется.
Makefile
all:
%:
#match-anything implicit rule
вывод make - неявное правило #match-anything
Makefile
all:
#explicit rule
%:
#match-anything implicit rule
вывод make - правило #explicit
all:
рассматривается как строка настройки предварительного условия, а не как правило (поскольку у него нет тела). - person Etan Reisner   schedule 30.07.2014make
ищет применимое неявное правило, чтобы найти его. Это точное поведение, которое вы видите и о котором спрашивали. Явное правило без рецепта не отменяет неявное правило. - person Etan Reisner   schedule 30.07.2014