2016-04-23 53 views
0

我有一個makefile,看起來像這樣:如何在Make中使用任意一組源文件?

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

這是假定我需要的是在同一個地方的所有源文件。
如果我想要構建的文件是(foo.cpp ../bar.cpp ../../xip/bas.cpp),該怎麼辦?

回答

0

你需要VPATH4.5.1 VPATH: Search Path for All Prerequisites, 加$(notdir ...)8.3 Functions for File Names

如果源文件是按照你的建議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 [email protected] 
$(TARGET) :  $(OBJS) 
    $(CXX) $(LDFLAGS) $^ -o $(TARGET) 
相關問題