我的目录中有许多名称相似的文件:test1.cpp,test2.cpp,test3.cpp等。我想将所有测试文件编译成可执行文件test1,test2,test3等。它们不一定是相互联系。
CC = clang++
CXX = clang++
INCLUDES =
CFLAGS = -g -Wall $(INCLUDES)
CXXFLAGS = -g -Wall $(INCLUDES)
LDFLAGS = -g
LDLIBS =
.PHONY: default
default: test1 test2
test1:
test2:
我没有指定test1,test2,而是想在这些行中使用通配符或模式匹配。我该怎么做?
答案 0 :(得分:2)
David Rodgriquez有正确的想法:make
有内置规则可以为您处理。但是,我建议使用makefile而不是在您的环境中设置变量,这样您就可以轻松地将构建作为另一个用户等执行环境未正确设置。您还可以使用makefile创建default
目标。
这很好:
CC = clang++
CXX = clang++
INCLUDES =
CFLAGS = -g -Wall $(INCLUDES)
CXXFLAGS = -g -Wall $(INCLUDES)
LDFLAGS = -g
LDLIBS =
.PHONY: default
default: $(basename $(wildcard test*.cpp))
这就是你所需要的一切!