我正在学习GNU makefile.我看到了这个页面:http://mrbook.org/blog/tutorials/make/
在本文的最后,我发现了这个:
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=main.cpp hello.cpp factorial.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=hello
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释OBJECT变量中的内容以及目标的.cpp.o:含义(也在$<其中)?
当我使用类似的东西时我也发现:
SRC = $(wildcard $(SRC_DIR)*.c)
SRC_OBJS = $(patsubst %.c, %.o, $(SRC))
Run Code Online (Sandbox Code Playgroud)
并使用"$(SRC_OBJS)"作为目标,它将为每个所需对象编译所有对象.这不会发生在第一个.有什么不同?
makefile ×1