$@ 表示目标文件
$^ 表示全部的依赖文件
$< 表示第一个依赖文件
$? 表示比目标还要新的依赖文件列表get
如一个目录下有以下文件:gcc
$ ls
hello.c hi.c main.c Makefile
按照 Makefile 规则规规矩矩的写:
main: main.o hello.o hi.o
gcc -o main main.o hello.o hi.ofile
main.o: main.c
cc -c main.cgc
hello.o: hello.c
cc -c hello.c文件
hi.o: hi.c
cc -c hi.ctar
clean:
rm *.o
rm main
改成用上述符号进行替代:
main: main.o hello.o hi.o gcc -o $@ $^ main.o: main.c cc -c $< hello.o: hello.c cc -c $< hi.o: hi.c cc -c $< clean: rm *.o rm main =============================================================================== $@表示目标,$^表示依赖列表 target:dependency1 dependency2 gcc -o $@ $^ $@ 就是target $^ 就是dependency1 dependency2