Я использую GNU make, я хочу, чтобы мои исходные и объектные файлы находились в разных папках.
В качестве первого шага я хочу получить исходные файлы в корне папки моего проекта и объектные файлы в подпапке (скажем, Debug/
).
Правило вывода будет:
.ss.obj:
echo Assembling $*.ss...
$(ASSEMBLY) $(2210_ASSEMBLY_FLAGS) $*.ss -o Debug\$*.obj
но в этом случае make все время перестраивает все файлы, поскольку в корневой папке нет .obj.
Есть ли способ включить папку для цели в строку .ss.obj
?
Я тоже пробовал:
$(OBJS_WITH_PATH):$(SRC)
echo Assembling $<...
$(ASSEMBLY) $(ASSEMBLY_FLAGS) $< -o $@
с $(SRC)
списком всех моих источников, $(OBJS_WITH_PATH)
построено так:
OBJS_WITH_PATH = $(patsubst %.ss,Debug\\%.obj,$(SRC))
но это строит зависимость от всех исходных файлов для всех объектных файлов.
Я хотел бы изменить правило вывода, которое я написал первым, чтобы получить Debug/*.obj
файлы. То, что он говорит сейчас, это no rule to make target Debug/asdfasdf.obj
.