windows下的nmake的makefile编写
当前所指定的当前目标的全名(路径、基名称、扩展名)。
当前所指定的当前目标的全名(路径、基名称、扩展名)。仅在作为依赖
项中的依赖项时有效。
当前目标的路径和基名称,没有文件扩展名。
当前目标的所有依赖项
$@ 当前所指定的当前目标的全名(路径、基名称、扩展名)。$$@ 当前所指定的当前目标的全名(路径、基名称、扩展名)。仅在作为依赖项中的依赖项时有效。
$* 当前目标的路径和基名称,没有文件扩展名。
$** 当前目标的所有依赖项
$? 时间戳比当前目标的时间戳晚的所有依赖项。
$< 时间戳比当前目标的时间戳晚的依赖文件。仅在推理规则的命令中有效。
SRCS = test.cpp add.cpp
OBJS = test.obj add.obj
all: a.exe
#test.obj: test.cpp
# cl /c /EHsc $(SRCS)
#add.obj: add.cpp
# cl /c /EHsc add.cpp
#test.exe: $(OBJS)
# link /out:test.exe test.obj add.obj
a.exe:$(OBJS)
link /out:.\a.exe $**
.cpp.obj::
cl /c $<
clean:
del *.obj *.exe
推理规则:
.fromext .toext:
command
编译所有.cpp文件可以写成
.cpp.obj:
cl /c $<
.cpp.obj:: 后边两个冒号代表批量处理, 即只有一个cl , cl /c a.cpp b.cpp c.cpp......
cl /c $<
若是需要制定目录下面的,可以写成
{$(indir)}.cpp{$(outdir)}.obj 即用{}代表需要制定的目录
/Fo" " 指定输出的目录