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



我有一个看起来像这样的生成文件:

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.,我该怎么办。/酒吧.cpp ../../xip/bas.cpp ) ?

你需要VPATH , 4.5.1 VPATH:搜索所有先决条件的路径,加上$(notdir ...) 8.3 文件名函数

如果您的源文件如您所建议的foo.cpp../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)

相关内容

  • 没有找到相关文章

最新更新