Это означает, что make
не может найти файл с именем $(OUTPUTDIR)/%.cpp
, что является обязательным условием для первого правила.
Вы не можете использовать %
в качестве подстановочного знака где-либо в правилах, подобных этому:
build: pre_build_script $(OUTPUTDIR)/%.cpp
оно должно быть частью правила шаблона или stati c правила шаблона .
Вы можете использовать $(wildcard $(OUTPUTDIR)/*.cpp)
, чтобы получить полный список файлов, но это анти-паттерн (каламбур). Предполагается, что вы либо точно знаете, какие файлы используются в каких правилах, либо (знаете это еще лучше и) создаете шаблонное правило c.
Второе правило шаблонов (одно из которых использует somepythonscript.py
): Предполагается, что он будет работать с одной парой исходный-целевой файл, $(INTXTDIR)/%.txt
-> $(OUTPUTDIR)/%.cpp
. Кажется, что команда обрабатывает все файлы в каталоге, который не является инкрементным: она выполнит всю работу заново, даже если был обновлен только один файл.