0
得到评价我是新来的makefile等百分号不生成文件
文件看起来是这样的:
COMPILER_NAME = gcc
COMPILER_FLAGS =
PATH_OBJECTS = ./obj
PATH_SOURCES = ./src
$(PATH_OBJECTS)/%.o: $(PATH_SOURCES)/%.c
$(info Generating object files...)
@$(COMPILER_NAME) $(COMPILER_FLAGS) -c $< -o [email protected]
cleanup: $(PATH_OBJECTS)/%.o
$(info Final cleanup...)
@rm -rf $<
当我尝试实际上使这个项目我得到这个错误: 化妆:***没有规则可以使'清理'所需的目标'obj /%。o'成为可能。停止。
这就像%通配符没有得到正确的评估。请帮帮我。
即使第一个目标不起作用。我的文件夹结构如下: 根 ----斌 ---- OBJ ---- SRC -------- main.c中 但C文件不被编译也不会移动到./obj 此外,如果我尝试删除清理目标,我得到此错误 “make:***没有目标,停止。” 即使目标在那里。 –
@FedericoLuzzi:你误解了模式规则的作用。尝试'make。/ obj/main.o'。 – Beta
关键的理解是,模式规则不会说“找到所有可以构建匹配此模式的文件并构建它们”。模式规则是_template_;它说:“如果你试图建立一个目标,并且它符合这个模式规则,那么你可以使用这个配方来构建它”。您仍然必须单独明确地告诉您要制作哪些目标。 – MadScientist