$@ 表示目標文件
$^ 表示全部的依賴文件
$< 表示第一個依賴文件
$? 表示比目標還要新的依賴文件列表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