dir
語法:$(dir
釋義:從檔名序列
示例:
$(dir src/main。c main)返回值是“src/ 。/”。
notdir
語法:$(notdir filelist)
釋義:用於去掉檔案的絕對路徑,只保留檔名
示例:
filelist := /src/main。c /src/test。c
file := $(notdir $(filelist))
foreach
語法: $(foreach var,list,text)
釋義:將list中的每個值依次賦給var,再將var傳給表示式並執行,最後返回表示式值
示例:
sourcefile := a b c d
destfile := $(foreach f, $(sourcefile), $(f)。c)
最終destfile的值為:a。c b。c c。c d。c
filter
語法:
$(filter PATTERN,TEXT)
釋義:獲取字串“TEXT”中所有符合模式“PATTERN”的值
示例:
FILE = a。c b。h c。s d。cpp
SRC = $(filter, %。c, $(FILE))
最終SRC的值為: a。c
filter-out
語法:
$(filter-out PATTERN,TEXT)
釋義:獲取字串“TEXT”中所有不符合模式“PATTERN”的值
示例:
FILE = a。c b。h c。s d。exe
SRC = $(filter-out, %。c, $(FILE))
最終SRC的值為: b。h c。s d。exe
wildcard
語法:
$(wildcard 指定檔案型別)
釋義:
顯示指定路徑下指定檔案型別的所有檔案
示例:
alt="Makefile中的部分函式" data-isLoading="0" src="/static/img/blank.gif" data-src=$(wildcard *。c 。/sub/*。c)
patsubst
語法:$(patsubst pattern,replacement,text)
釋義:patsubst把text中的變數符合pattern的全部替換成replacement
示例:
$(patsubst %。c,%。o,$(dir) )
patsubst把$(dir)中的變數符合字尾是。c的全部替換成。o