這裏是我的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] && ...')你的食譜產品? 請參閱我的回答下面與依賴圖相關的問題,並編輯您的問題/相應地創建一個新的問題,如果您有其他需求 –