Это сообщение означает, что предварительное условие вашего правила не найдено и не может быть создано (под «предварительным условием» я имею в виду $(PATHB)TestVectorCode.$(TARGET_EXTENSION)
- вы не показываете значения этих переменных, поэтому я не могу их развернуть) для вас).
Шаблонное правило предлагает один из возможных способов , что цель может быть построена. Может быть много шаблонов, которые могут создать одну и ту же цель, поэтому тот факт, что один из них не совпадает, сам по себе не смертелен. Только если все они не совпадают, выдает эту ошибку, что не может найти никакого правила для построения цели.
У вас должна быть опечатка в вашем примере "правила, которые работают", потому что, конечно, она не полагается на файл с именем %
, верно?
Если вы не можете понять это, попробуйте запустить make -d build/results/TestVectorCode.txt
и проверить вывод, чтобы понять, почему make отклоняет ваше правило шаблона (возможно, перенаправьте вывод, потому что это будет много).
Другое дело, что я знаю, что версия GNU make, поставляемая с Xcode, очень старая и содержит ошибки. Я не думаю, что они вызовут что-то подобное, но я не уверен. Если вы можете, вы можете попробовать установить последнюю версию GNU make с помощью brew (например) и посмотреть, получаете ли вы такое же поведение.