【makefile學習記錄1】認識make和makefile
阿新 • • 發佈:2018-11-26
1、什麼是make?為什麼需要make?
make本質是一個應用程式。
- 用來解析源程式之間的依賴關係
- 根據依賴關係自動維護編譯工作
- 執行宿主作業系統中的各種命令
其表現形式就是一個命令。用來編譯原始碼。在學習c/c++中,直接在命令列gcc/g++編譯源程式。問什麼還需要make呢?在實際工程中,原始檔十分龐大,gcc/g++十分麻煩,這是就體現了make在實際的工程專案中的價值,其中GNUmake使用非常多。
2、什麼是makefile?
makefile是一個描述檔案(配置檔案,其中寫上一些規則,有make來解讀這些規則)
- 定義一系列的規則來制定原始檔編譯的先後順序
- 擁有特定的語法規則,支援函式定義和函式呼叫
- 能夠直接整合作業系統中的各種命令
3、make和makefile之間的關係?
makefile中的描述用於指導make程式如何完成工作;make根據makefile中的規則執行命令,最後完成編譯輸出。
舉例:在makefile中描述x.c,y.c,z.c之間的依賴關係
make根據makefile中的所列出的描述規則來進行具體的編譯,最終生成可執行程式(也可稱作目標)
make相當於一個直譯器,來解釋makefile指令碼程式。
4、最簡單的makefile示例
注意:目標後的命令需要用('\t')隔開,否則會報錯。
makefile程式的使用示例:
make -f mf.txt hello
功能說明:以hello關鍵字作為目標查詢mf.txt檔案,並執行目標hello處的命令。
在我們的Linux系統中,簡單即是美。可將上邊的命令簡寫為:
make hello
功能說明:以hello關鍵字作為目標查詢當前目錄makefile或Makefile檔案,並執行hello處的命令。
也可以簡寫為:
make
功能說明:查詢makefile或Makefile檔案中最頂層目標,並執行最頂層目標的命令。
注意:
- 當makefile和Makefile同時存在於一個目錄時,鍵入make命令,執行makefile中的相關命令。
- 若當前目錄中存在makefile和Makefile,Makefile中存在目標hello,而makefile中不存在時,鍵入make hello報錯。