http://www.cnblogs.com/gamesun/p/3323155.html
$@ 表示目标文件
$^ 表示所有的依赖文件$< 表示第一个依赖文件$? 表示比目标还要新的依赖文件列表如一个目录下有如下文件:
$ lshello.c hi.c main.c Makefile
按照 Makefile 规则规规矩矩的写:
main: main.o hello.o hi.o gcc -o main main.o hello.o hi.omain.o: main.c cc -c main.chello.o: hello.c cc -c hello.c hi.o: hi.c cc -c hi.c clean: rm *.o rm main
改为用上述符号进行替代:
main: main.o hello.o hi.o gcc -o $@ $^main.o: main.c cc -c $
再如:
# 这是上面那个程序的Makefile文件
main:main.o mytool1.o mytool2.o gcc -o main main.o mytool1.o mytool2.o main.o:main.c mytool1.h mytool2.h gcc -c main.c mytool1.o:mytool1.c mytool1.h gcc -c mytool1.c mytool2.o:mytool2.c mytool2.h gcc -c mytool2.c