Makefile 生成文件语法

Makefile 生成文件语法,makefile,Makefile,我正在学习makefiles,对一些语法和后缀的工作方式有点困惑 CPP = g++ OFLAG = -o .SUFFIXES : .o .cpp .c .cpp.o : $(CPP) $(CPPFLAGS) -c $< .c.o : $(CPP) $(CPPFLAGS) -c $< all: \ Return \ Declare \ Ifthen \ Guess \ Guess2 \ Return: Re

我正在学习makefiles,对一些语法和后缀的工作方式有点困惑

CPP = g++
OFLAG = -o
.SUFFIXES : .o .cpp .c
.cpp.o : 
    $(CPP) $(CPPFLAGS) -c $<
.c.o :
    $(CPP) $(CPPFLAGS) -c $<

all: \
    Return \
        Declare \
    Ifthen \    
    Guess \
    Guess2 \

Return: Return.o
    $(CPP) $(OFLAG)Return Return.o

Deckare: Declare.o
    $(CPP) $(OFLAG)Declare Declare.o

# follow same format for other executables

Return.o: Return.cpp
Declare.o: Declare.cpp

# follow same format for other executables
CPP=g++
OFLAG=-o
.后缀:.o.cpp.c
.cpp.o:
$(CPP)$(CPPFLAGS)-c$<
.c.o.:
$(CPP)$(CPPFLAGS)-c$<
全部:\
返回\
申报\
如果
猜\
猜测2\
Return:Return.o
$(CPP)$(OFLAG)Return.o
Deckare:申报
$(CPP)$(OFLAG)Declare.o
#对其他可执行文件采用相同的格式
Return.o:Return.cpp
Declare.o:Declare.cpp
#对其他可执行文件采用相同的格式
“.后缀:.o.cpp.c”行实际上是做什么的

我不太明白$<是什么意思


中国国旗来自哪里?(这只是make的特殊语法吗?。

。后缀定义make将理解的后缀规则集。因此,在本例中,您可以定义涉及后缀
.o
.cpp
.c
的后缀规则。如果要定义规则
.x.o
,因为
.x
不在
.suffix
列表中,它将不是后缀规则,而是生成文件
.x.o
的规则


$
.suffix
定义了一组后缀,使make能够理解后缀规则。因此,在本例中,您可以定义涉及后缀
.o
.cpp
.c
的后缀规则。如果要定义规则
.x.o
,因为
.x
不在
.suffix
列表中,它将不是后缀规则,而是生成文件
.x.o
的规则

$
CPPFLAGS
在这种情况下是“特殊”的,因为该品牌将其包含在其许多默认规则中。
CPPFLAGS
在这种情况下是“特殊”的,因为该品牌将其包含在其许多默认规则中。