makefile $@, $^, $<, $?

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

相關文章
相關標籤/搜索