常用的makefile的隐含规则定义的宏:
$@—全路径的目标文件。
$*—除去扩展名的全路径的目标文件。$?—所有源文件名。
$<—源文件名(只能用在隐含规则中)
使用实例:
include ../make.env
TAG=libjson.dll
CC=cl
CFLAG=/c /I$(INCDIR) /L$(LIBDIR)
LINK=link
CPPOBJS=json_value.obj json_reader.obj json_writer.obj
$(TAG):$(CPPOBJS)
$(LINK) /DLL /OUT:$(TAG) $(CPPOBJS)
$(CPPOBJS):$*.cpp
$(CC) $(CFLAG) $?
clean:
del *.obj
del $(TAG)