最重要的是 Makefile 規則,其基本結構如下:
- 目標 (Target) : 一個目標檔,可以是 Object 檔,也可以是執行檔,還可以是一個標籤。
- 依賴 (Dependency, Prerequisites) : 要產生目標檔 (target) 所依賴哪些檔。
- 命令 (Command) : 建立專案時需要執行的 shell 命令。命令部分的每行的縮進必須要使用 Tab 鍵而不能使用多個空格。
#用「井」號表明注釋。 target(要生成的文件): dependencies(被依賴的文件) #命令前面用的是「tab」而非空格。誤用空格是初學者容易犯的錯誤。 命令1 命令2 命令3 . . . 命令n #可以使用「\」表示續行。注意,「\」之後不能有空格。
像 clean 這種沒有被第一個目標文件直接或間接關聯,那麼它後面所定義的命令將不會被自動執行,不過我們可以顯式要求 make 執行。即 make clean。
.PHONY 會將目標設成假目標,使 make 目錄下沒有目標檔案或目標檔案為最新時,仍可執行 make <target>。.PHONY 寫法也可以讓程式設計師知道哪些工作目標不是針對檔案,增加可讀性。
Make 預設的假工作目標有 all, install, clean, distclean, TAGS, info 和 check。
一個常用的情況是 make clean,因為 clean 標籤下的 rm 命令並不產生 clean 文件:
Make 預設的假工作目標有 all, install, clean, distclean, TAGS, info 和 check。
一個常用的情況是 make clean,因為 clean 標籤下的 rm 命令並不產生 clean 文件:
.PHONY: clean clean: rm *.o
No comments:
Post a Comment