Makefile 生成文件和依赖项
我正在写一个makefile,我不知道如何包含所有的源文件,而不必写所有我想使用的源文件。以下是我当前使用的makefile:Makefile 生成文件和依赖项,makefile,Makefile,我正在写一个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)
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 $@
GCC=$(GNUARM\u HOME)\bin\arm-elf-GCC.exe
源=shapepp.cpp Square.cpp Circle.cpp Shape.cpp
对象=$(源:.cpp=.o)
可执行文件=你好
全部:$(可执行)
$(可执行文件):$(对象)
#$(CC)$(LDFLAGS)$(对象)-o$@
.cpp.o:
$(GCC)-c$<-o$@
如何自动添加新的源文件而不必将其添加到源代码行?以下是我在
示例/
目录中使用的内容,其中每个文件都一一映射到一个可执行文件:
sources := $(wildcard *.cpp)
programs := $(sources:.cpp=)
[ more settings about compiler flags, linker options, ...]
all : $(programs)
这就足够了,因为make
知道如何将.cpp文件转换为对象文件,然后再转换为可执行文件。请注意,这是在Linux上进行的,因此对于Windoze,您可能需要这样做
programs := $(sources:.cpp=.exe)
要附加.exe。OP只需要一个可执行文件。(尽管他可能从你的答案中找出其余的答案)正确。他需要的只是来源声明。除了玩具项目,你不想经常这样做。第一次备份文件或留下一点测试代码时,就会遇到麻烦。没有准确列出组成程序的模块会带来麻烦。如果每个文件都是一个完整的自包含程序(这是德克建议的),那么它就更合理。