2010-03-20 116 views
2

我正在寫一個makefile,我無法弄清楚如何包含我所有的源文件,而不必編寫所有我想使用的源文件。這裏是我正在使用的makefile:MakeFiles和依賴關係

GCC = $(GNUARM_HOME)\bin\arm-elf-gcc.exe 
SOURCES=ShapeApp.cpp Square.cpp Circle.cpp Shape.cpp 
OBJECTS=$(SOURCES:.cpp=.o) 
EXECUTABLE=hello 

all: $(EXECUTABLE) 

$(EXECUTABLE): $(OBJECTS) 
#$(CC) $(LDFLAGS) $(OBJECTS) -o [email protected] 

.cpp.o: 
    $(GCC) -c $< -o [email protected] 

如何自動添加新的源文件,而無需將其添加到源代碼行?

+1

玩具項目之外,你不想經常這樣做。第一次製作文件的備份副本時,您會遇到麻煩,或者留下一些測試代碼。沒有完全列出組成該程序的模塊是一個麻煩的祕訣。如果每個文件都是一個完整的獨立程序,這正是德克所建議的,那麼它就更爲合理。 – 2010-03-20 17:40:19

回答

1

這裏是我已經在每個文件映射一個-to-one的可執行文件的目錄examples/使用:

sources := $(wildcard *.cpp) 
programs := $(sources:.cpp=) 

[ more settings about compiler flags, linker options, ...] 


all :  $(programs) 

這也足以爲make知道如何把一個.cpp文件到一個目標文件,然後到一個可執行文件。請注意,這是在Linux上,所以對於Windoze你可能需要做

programs :=  $(sources:.cpp=.exe) 

要追加.exe。

+0

OP只需要一個可執行文件。 (雖然他可以從你的答案中找出其他答案) – rjh 2010-03-20 17:09:43

+0

正確。他所需要的只是來源聲明。 – 2010-03-20 19:26:05