这里是我的makefile,因为它目前存在如何为.cpp和.h文件从变量生成依赖关系?
SRC=src
HDS=header
DRV=drivers
FILES=arraystack arraylist pointerstack pointerlist
FLAGS=-w -I $(HDS)
.PHONY: timing all $(FILES)
.DEFAULT_GOAL:=all
$(FILES): % :$(DRV)/%_driver.cpp $(HDS)/%.h $(SRC)/%.cpp
g++ $(FLAGS) $^ -o [email protected] && ./[email protected] && rm [email protected]
timing:
g++ $(FLAGS) $^ -i [email protected] && ./[email protected] && rm [email protected]
all: $(FILES) timing
目标时间需要靠arraystack.cpp,arraystack.h,arraylist.cpp,arraylist.h,pointerstack.cpp,pointerstack.h,pointerlist.cpp ,和pointerlist.h。此外,这些文件位于不同的目录中 - .h文件位于标题/中,.cpp文件位于src /中。有没有一种方法可以让make根据某种模式匹配自动生成这些需求,这些需求来自于我的变量中具有根文件名的现有列表?这似乎是一个更优雅的解决方案,而不是一个8 .h和.cpp文件列表应该可用。
当你的依赖性问题很好说,你是什么:你可以在一个配方,而不是使用shell内置
&&
分行指定多个动作试图用这个Makefile实现并不是很清楚:你为什么试图执行('... && ./[email protected] && ...')你的食谱产品? 请参阅我的回答下面与依赖图相关的问题,并编辑您的问题/相应地创建一个新的问题,如果您有其他需求 –