该项目实际上在源文件所在的位置有很多不同的目录,因此Im简化了一点。
SOURCES变量包含:
src/main.cpp src/test.cpp
目标规则$(BUILD_PATH)%。o扩展为:
linux_build/test.o
因此,我试图制定一条接受目标的规则,查看“ nodir”部分,并尝试将其与SOURCES列表中的相应条目进行匹配。然后使用它作为前提:
$(BUILD_PATH)%.o: $(strip $(foreach path, $(SOURCES), $(if $(findstring %.cpp,$(path)), $(path),)))
$(CL) $(CL_FLAGS) $(INC) $< -o $@
似乎不起作用的是“%.cpp”中的%。我在这里做错了什么?