假设我有以下makefile:
CPPFILES := $(wildcard *.cpp)
OBJFILES := $(CPPFILES:.cpp=.o)
.PHONY: all
all: $(OBJFILES)
%.o: %.cpp
$(CXX) -c $< -o $@
现在我想添加对* .cc文件的支持。 有可能扩展行%。o:%。cpp 来处理一行中的* .cpp和* .cc文件吗?我希望如下:%。o:%。cpp%。cc 。
非常感谢, 托雷诺
答案 0 :(得分:1)
你真的只是重新制作make的内置规则,但以下内容应该有效
CCFILES := $(wildcard *.cc)
CPPFILES := $(wildcard *.cpp)
CCOBJFILES := $(CCFILES:.cc=.o)
CPPOBJFILES := $(CPPFILES:.cpp=.o)
OBJFILES := $(CCOBJFILES) $(CPPOBJFILES)
.PHONY: all
all: $(OBJFILES)
$(CCOBJFILES): %.o: %.cc
$(CPPOBJFILES): %.o: %.cpp
$(OBJFILES):
$(CXX) -c $< -o $@
使用内置规则,上述内容可以缩短为
CCFILES := $(wildcard *.cc)
CPPFILES := $(wildcard *.cpp)
.PHONY: all
all: $(CCFILES:.cc=.o) $(CPPFILES:.cpp=.o)