Makefile 語法

  1. makefile 的語法(syntax)
    標的(target): 目標檔1 目標檔2 
    <tab>  gcc -o 欲建立的執行檔 目標檔1 目標檔2
    
    1. 標的 (target) 與相依檔案(就是目標檔)之間需以『:』隔開。
    2. <tab> 需要在命令行的第一個字元;
    3. makefile 語法中之 <tab> 與空白:
      1. 所有的法則必須在同一行,而且行首必須為 <tab>;不能為空白。
      2. 在 makefile 中,行尾如果有一個空白,會造成 make 命令執行錯誤。
    4. makefile 的註解(comment):
      1. 如同 C 原始碼檔案一般,在 makefile 中,以 # 為行首的文字都是註解。
      2. makefile 中的註解只是協助作者和其它人,了解 makefile 的內容。
  2. 第一支 makefile。
    [dywang@dyw219 zzz]$ cd make1/
    [dywang@dyw219 make1]$ vim makefile
    [dywang@dyw219 make1]$ cat makefile 
    main: main.o 2.o 3.o
    	gcc -o main main.o 2.o 3.o
    
    1. 刪除先前產生的 .o 檔及執行檔 main。
      [dywang@dyw219 make1]$ rm *.o main
      
    2. 執行 make 不加任何參數,會自動搜尋 makefile 進行編譯。
      [dywang@dyw219 make1]$ make
      cc    -c -o main.o main.c
      cc    -c -o 2.o 2.c
      cc    -c -o 3.o 3.c
      gcc -o main main.o 2.o 3.o
      
    3. 執行結果:
      [dywang@dyw219 make1]$ ./main 
      2222
      
    4. 再執行一次 make,沒有任何變動,所以沒有必要進行任何重編譯。
      [dywang@dyw219 make1]$ make
      make: `main' is up to date.