1
在我的項目的所有.cpp文件都存儲在Makefile文件 - 替換通配符
Classes/
Classes/Something/
Classes/Something/Else
...
我想編譯所有.cpp文件separetly到bin /目錄下,替換/與_,使:
Classes/First.cpp -> Bin/Classes_First.o
Classes/Foo/Bar.cpp -> Bin/Classes_Foo_Bar.o
現在我想爲編譯創建規則:
Bin/%.o: $(subst _,/,%.cpp)
$(COMPILER)g++ $(COMPILE_FLAGS) -c -o [email protected] $^
我想:
make bin/Classes_Test.o
但編譯失敗。
因此,我創建調試模式:
%.cpp:
@echo CPP: [email protected]
現在印刷:
CPP: Classes_Test.cpp
爲什麼?
所以我改變了我的模式:
Bin/%.o: $(subst _,/,Test1_Test2.cpp)
,我看到:
CPP: Test1/Test2.cpp
我有點困惑,爲什麼SUBST如果我使用通配符作爲源不工作...