Makefile 簡易教程
如果你是命令行重度使用者,學(xué)習(xí) Makefile 將可以大大提高你的開發(fā)效率,下面簡單介紹一下 Makefile 的知識和使用方式。
Makefile 是一種包含一組指令來編譯和構(gòu)建軟件項(xiàng)目的文件。
Makefile 文件通常包含一組規(guī)則和依賴關(guān)系,以指定如何將源代碼編譯成可執(zhí)行文件或庫。
當(dāng)執(zhí)行 make 命令時,make 工具將解析 Makefile 文件,并根據(jù)定義的規(guī)則和依賴關(guān)系來執(zhí)行所需的操作,以生成最終的目標(biāo)文件。
Makefile 是一個常用的構(gòu)建工具,尤其在 Unix 和 Linux 系統(tǒng)上廣泛使用。
Makefile文件由一系列規(guī)則(rules)構(gòu)成。每條規(guī)則的形式如下。
規(guī)則語法
target ... : prerequisites ...?
? ?command?
? ?...
上面第一行冒號前面的部分,叫做"目標(biāo)"(target),冒號后面的部分叫做"前置條件"(prerequisites);
第二行必須由一個tab鍵起首,后面跟著"命令"(commands)。
"目標(biāo)"是必需的,不可省略;"前置條件"和"命令"都是可選的,但是兩者之中必須至少存在一個。
每條規(guī)則就明確兩件事:構(gòu)建目標(biāo)的前置條件是什么,以及如何構(gòu)建。
下面就詳細(xì)講解,每條規(guī)則的這三個組成部分。
示例文件
.PHONY: test #.PHONY 偽目標(biāo),代表無論 test 文件或目錄是否存在都會執(zhí)行 make test 命令
txt = Hello World #Makefile 允許使用等號自定義變量。
all: clear test php #當(dāng)執(zhí)行 make 不帶其他命令時,默認(rèn)執(zhí)行第一條
python:
? ?-python vv #命令前加 - 代表執(zhí)行錯誤繼續(xù)執(zhí)行下面的命令
? ?php -v #井號(#)在Makefile中表示注釋。
php:
? ?@php -v #正常情況下,make會打印每條命令,然后再執(zhí)行,這就叫做回聲(echoing)。在命令的前面加上@,就可以關(guān)閉回聲。
clear:
? ?clear
test:
? ?@echo $(txt) #使用變量 ? ?@echo =============
這是一篇比較簡潔的文章,希望可以讓您對 Makefile 有一個基本了解。
Makefile 教程:https://seisman.github.io/how-to-write-makefile/index.html