我有这个:
include makefile_vars.mk
# Target
TARGET := $(OBJ)/$(TARGETNAME)
# Move objects to ../Obj
OBJECTS := $(addsuffix .obj,$(SOURCES))
override OBJECTS := $(OBJECTS:$(SRC)/%.obj=$(OBJ)/%.obj)
# Objects o
OBJ_INC_DIRS := $(sort $(dir $(OBJECTS)))
# Target
all: $(TARGET)
$(TARGET): $(OBJECTS)
# Objects
$(OBJ)/%.c.obj: $(SRC)/%.c | $(OBJ_INC_DIRS)
@echo Compiling $(<F) ...
$(OBJ)/%.a66.obj: $(SRC)/%.a66 | $(OBJ_INC_DIRS)
@echo Compiling $(<F) ...
$(OBJ_INC_DIRS):
mkdir -p $@
我第一次启动它时,它告诉我没有规则来制作目标MyFile.c.obj,当再次运行时(whitout修改任何东西)找到规则并继续编译。
我做错了什么?
答案 0 :(得分:1)
我不确定这会有效,但我会从模式规则中移出$(OBJ_INC_DIRS)
仅限订单的先决条件:
$(OBJECTS) : | $(OBJ_INC_DIRS)
$(OBJ)/%.c.obj: $(SRC)/%.c
@echo Compiling $(<F) ...
...