我正在编写一个makefile,我无法弄清楚如何包含我所有的源文件,而无需编写我想要使用的所有源文件。这是我目前正在使用的makefile:
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 $@
.cpp.o:
$(GCC) -c $< -o $@
如何自动添加新的源文件而不必将其添加到源代码行?
答案 0 :(得分:1)
以下是我在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。