如何在Make中使用任意一组源文件?

时间:2016-04-23 16:10:51

标签: makefile gnu-make build-system

我有一个看起来像这样的makefile:

SRCS :=         $(wildcard *.cpp)
OBJS :=         $(patsubst %.cpp, %.o, $(SRCS))
TARGET :=       foo
default :       $(TARGET)
%.o : %.cpp %.h
    $(CXX) $(CXXFLAGS) $< -o $@
$(TARGET) :     $(OBJS)
    $(CXX) $(LDFLAGS) $^ -o $(TARGET)

这假定我需要的所有源文件都在同一个地方 如果我要构建的文件是(foo.cpp ../bar.cpp ../../xip/bas.cpp),我该​​怎么办?

1 个答案:

答案 0 :(得分:0)

您需要$(notdir ...)4.5.1 VPATH: Search Path for All Prerequisites, 加foo.cpp 8.3 Functions for File Names

如果您的源文件符合您的建议../bar.cpp../../xip/bas.cpp )VPATH := ..:../../xip/ SRCS := $(notdir foo.cpp ../bar.cpp ../../xip/bas.cpp) OBJS := $(patsubst %.cpp, %.o, $(SRCS)) TARGET := foo default : $(TARGET) %.o : %.cpp %.h $(CXX) $(CXXFLAGS) $< -o $@ $(TARGET) : $(OBJS) $(CXX) $(LDFLAGS) $^ -o $(TARGET) 然后你的makefile看起来像:

Select Case