1. 程式人生 > >5.16 下午 閱讀813 單詞

5.16 下午 閱讀813 單詞

命名 pan 部分 根據 其中 建立 及其 img image

技術分享

技術分享

Makefile之執行過程

  1. 依次讀取變量“MAKEFILES”定義的makefile文件列表

  2. 讀取工作目錄下的makefile文件(根據命名的查找順序“GNUmakefile”“makefile”“Makefile”,首先找到那個就讀取那個)

  3. 依次讀取工作目錄makefile文件中使用指示符“include”包含的文件

  4. 查找重建所有已讀取的makefile文件的規則(如果存在一個目標是當前讀取的某一個makefile文件,則執行此規則重建此makefile文件,完成以後從第一步開始重新執行)

  5. 初始化變量值並展開那些需要立即展開的變量和函數並根據預設條件確定執行分支

  6. 根據終極目標以及其他目標的依賴關系建立依賴關系鏈表

  7. 執行除終極目標以外的所有的目標的規則(規則中如果依賴文件中任一個文件的時間戳比目標文件新,則使用規則所定義的命令重建目標文件)

  8. 執行終極目標所在的規則

Makefile之模式規則

模式規則其實也是普通規則,但它使用了如%這樣的通配符。如下面的例子:

%.o : %.c

$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

此規則描述了一個.o文件如何由對應的.c文件創建。規則的命令行中使用了自動化變量“$<”[email protected]

/* */,其中自動化變量“$<”代表規則的依賴,[email protected]代表規則的目標。此規則在執行時,命令行中的自動化變量將根據實際的目標和依賴文件取對應值。

Makefile之隱式規則

  如果發現某變量在shellmakefile中未找不到其定義,那麽恭喜你,你極大可能遇到隱式規則了。當然隱式規則中的變量只是隱式規則的一部分。

5.16 下午 閱讀813 單詞