Makefile 自訂法則

  1. 在 makefile 增加目標項目,以法則一將 .c 檔案變成 .o 檔案。其中變數 $< 代表目前的相依性項目,會被展開成為原本的檔案名稱(含舊的檔尾)。
    [dywang@dyw219 make1]$ vim makefile
    [dywang@dyw219 make1]$ grep ^.c.o -A1 makefile
    .c.o:
    	gcc -W -c $<
    
  2. make clean 刪除 main main.o 2.o 3.o。
    [dywang@dyw219 make1]$ make
    make: `main' is up to date.
    [dywang@dywIssd make1]$ make clean
    rm -f main main.o 2.o 3.o
    
  3. 再執行 make,gcc 以 -W 選項編譯,表示法則一生效。
    [dywang@dyw219 make1]$ make
    gcc -W -c main.c
    gcc -W -c 2.c
    gcc -W -c 3.c
    cc   main.o 2.o 3.o   -o main
    
  4. 將 makefile 將 .c 檔案變成 .o 檔案法則改用法則二。
    [dywang@dyw219 make1]$ grep ^%.o -A1 makefile
    %.o: %.c
    	gcc -W -c $<
    
  5. make clean 刪除 main main.o 2.o 3.o。
    [dywang@dyw219 make1]$ make
    make: `main' is up to date.
    [dywang@dywIssd make1]$ make clean
    rm -f main main.o 2.o 3.o
    
  6. 再執行 make,gcc 以 -W 選項編譯,表示法則二生效。
    [dywang@dyw219 make1]$ rm -f main main.o 2.o 3.o
    [dywang@dyw219 make1]$ make
    gcc -W -c main.c
    gcc -W -c 2.c
    gcc -W -c 3.c
    cc   main.o 2.o 3.o   -o main