patsubst函數是GNU make中的一個內置函數,用于對指定的字符串進行模式替換。它的語法如下:
$(patsubst pattern,replacement,text)
其中,pattern是要匹配的模式,replacement是用于替換的字符串,text是要進行替換的文本。
patsubst函數會在text中查找與pattern匹配的部分,并將其替換為replacement。它可以用于對文件名、路徑名等進行模式替換。
以下是patsubst函數的使用示例:
# 將src目錄下的所有.c文件替換為.o文件
OBJS = $(patsubst src/%.c,obj/%.o,$(wildcard src/*.c))
# 將所有的.c文件替換為.o文件
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
wildcard函數也是GNU make中的一個內置函數,用于查找文件。它的語法如下:
$(wildcard pattern)
其中,pattern是要查找的文件模式。
wildcard函數會在當前目錄下查找與pattern匹配的文件,并返回匹配到的文件列表。它可以用于獲取指定目錄下的文件列表,或者根據文件模式來進行操作。
以下是wildcard函數的使用示例:
# 獲取當前目錄下所有的.c文件
SRCS = $(wildcard *.c)
# 獲取src目錄下的所有的.c文件
SRCS = $(wildcard src/*.c)
patsubst函數和wildcard函數常常一起使用,可以方便地進行文件名、路徑名的模式替換和查找操作。