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如果我使用通配符作为源不工作...