2017-03-02 104 views
0

我已代碼排序的嵌套目錄,如Makefile文件 - 與SRC-和OBJ-文件嵌套目錄

src/cmn/abc.cpp 
src/voc/xyz.cpp 

和期望的目標輸出應該

obj/cmn/abc.o 
obj/voc/xyz.o 

Makefile的條目是通用的目標規則

SRC_FILES := src/cmn/abc.cpp src/voc/xyz.cpp 
OBJ_FILES := $(patsubst %.cpp,*.o,$(patsubst src/%,obj%,$SRC_FILES)) 

通用目標規則很簡單(太簡單),不能按需要工作。它會在src文件旁邊創建obj文件,因爲它會錯過模式替換。此外它會錯過目錄創建(如obj/voc)。

.cpp.o: 
     @$(CC) $(CC_FLAGS) $< -o [email protected] 

如何定義目標以實現上述目標?

回答