make工程管理器

2021-08-01 12:00:31 字數 1493 閱讀 7801

make工程管理器是乙個「自動編譯管理器」,這裡的「自動」是指它能夠根據檔案時間戳自動發現更新過的檔案而減少編譯的工作量,同時,它通過讀入makefile檔案的內容來執行大量的編譯工作。使用者只需編寫一次簡單的編譯語句就可以了。它大大的提高了實際的工作效率。

在乙個makefile檔案中通常包含如下內容:

•需要由make工具建立的目標體(target),通常是目標檔案或可執行檔案。

•要建立的目標所依賴的檔案。

•建立每個目標體時需要執行的命令。

例子如下:

main:main.o fun.o

gcc main.o fun.o -o main

main.o: main.c

gcc main.c -c

fun.o:fun.c

gcc fun.c -c

make中使用變數:

例子如下:

bianliang1 =main.o fun.o

bianliang2 =main

bianliang3 =main.c

bianliang4 =fun.c

bianliang5 =gcc

bianliang2:$(bianliang1)

$(bianliang5) $(bianliang1) -o $(bianliang2)

main.o: $(bianliang3)

$(bianliang5) $(bianliang3) -c

fun.o:$(bianliang4)

$(bianliang5) $(bianliang4) -c

•makefile檔案主要包含了5部分內容:

1.顯式規則。說明了如何生成乙個或多個目標檔案。由makefile檔案的創作者指出,包括要生成的檔案、檔案的依賴檔案、生成的命令。

2.隱式規則。由於make有自動推導的功能,所以隱式的規則可以比較粗糙地簡略書寫makefile檔案,這是由make所支援的。

3.變數定義。在makefile檔案中要定義一系列的變數,變數一般都是字串,這與c語言中的巨集有些類似。當makefile檔案執行時,其中的變數都會擴充套件到相應的引用位置上。

4.檔案指示。其包括3個部分,乙個是在乙個makefile檔案中引用另乙個makefile檔案;另乙個是指根據某些情況指定makefile檔案中的有效部分;還有就是定義乙個多行的命令。

5.注釋。makefile檔案中只有行注釋,其注釋用「#」字元。如果要在makefile檔案中使用「#」字元,可以用反斜框進行轉義,如:「\#」。 

gnu的make工作時的執行步驟:

1.讀入所有的makefile檔案。

2.讀入被include包括的其他makefile檔案。

3.初始化檔案中的變數。

4.推導隱式規則,並分析所有規則。

5.為所有的目標檔案建立依賴關係鏈。

6.根據依賴關係,決定哪些目標要重新生成。

7.執行生成命令。

工程管理器make

工程管理器make 命令tree 樹狀顯示目錄下的檔案 make命令 通過批處理來實現自動編譯 要想使用make必須要有 makefile 檔案 makefile三元素 目標 依賴命令 執行此命令,依賴該檔案來實現該目標 僅編譯hello.c的 makefile 檔案示例 hello hello.o...

make工程管理器

今天首先編寫了一道程式,有n個人圍成一圈,順序排號,從第乙個人開始報數 從1報到 3 凡報到 3的人退出圈子,問最後留下的是原來第幾號的那位。通過這道程式設計,對 c語言有了更深刻的理解。隨後又學習了 make 工程管理器的一些知識。首先是建立功能目錄 mkdir p add src mv add....

make工程管理器

工程管理器 make可以管理較多的檔案,自動編譯管理器 當然這裡也可以gcc add.c sub.c mul.c div.c main.c o main實現多檔案編譯過程 這裡主要介紹工程管理器make及makefile的使用 makefile是make讀入的唯一配置檔案,如果沒有makefile,...