Makefile 目标是什么;。cpp.o.:“;是指在生成文件中?

Makefile 目标是什么;。cpp.o.:“;是指在生成文件中?,makefile,Makefile,我正在学习GNU makefile。我看到了这一页: 在本文末尾,我发现: 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 $

我正在学习GNU makefile。我看到了这一页:

在本文末尾,我发现:

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 $@

并使用“$(SRC_OBJS)”作为目标,它将编译每个所需对象的所有对象。这不是第一次。有什么区别吗?

这是一条后缀规则,告诉我们如何将
文件.cpp
转换为
文件.o
以处理任意
文件


$谢谢你给我这个名字,我搜索了“后缀规则”,发现它在GNU文档中解释得很好。这就解决了我的问题。@MingchenZhang太好了!Stackoverflow的下一步是向上投票/接受你认为最有用的答案(有时在你这么做之前有最短的时间,或者需要最短的声誉)。
SRC = $(wildcard $(SRC_DIR)*.c)
SRC_OBJS = $(patsubst %.c, %.o, $(SRC))