Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вычисляет список элементов с каждым элементом, который соответствует шаблону, заменяемого подстановкой, и элементы, которые не соответствуют сохраненной как есть.
Синтаксис
$(patsubst pattern,replacement,input)
$(patsubsti pattern,replacement,input)
Параметры
replacement
Шаблон для заменыpattern
. Если подстановочный знак присутствует replacement
, он будет заменен текстом, который соответствует подстановочный знак pattern
.
input
Список элементов, которые необходимо заменить или сохранить.
Возвращаемое значение
Возвращается input
, но каждый соответствующий pattern
элемент заменяется replacement
. Элементы, которые не соответствуют pattern
, хранятся как есть.
Замечания
patsubsti
— это нечувствительная версия регистра patsubst
.
Эта функция макроса доступна начиная с Visual Studio 2022 версии 17.1, в NMAKE версии 14.31 или более поздней.
Пример
$(patsubst He%,_%_,Hello Hey Hi) # Evaluates to "_llo_ _y_ Hi"
# "He" matches "Hello" and "Hey", and so "llo" and "y" are matched by the wildcard
# and used to substitute the wildcard in the replacement. "Hi" is not matched and so is kept as-is
$(patsubst Hi,Bye,Hello Hey Hi) # Evaluates to "Hello Hey Bye" - No wildcard is required
$(patsubst %lo,Bye,Hello Hey Hi) # Evaluates to "Bye Hey Hi"
# A wildcard can be used in the pattern without a wildcard in the replacement
$(patsubst he%,_%_,Hello Hey Hi) # Evaluates to "Hello Hey Hi" - patsubst is case-sensitive, so no substitutions performed
$(patsubsti he%,_%_,Hello Hey Hi) # Evaluates to "_llo_ _y_ Hi" - patsubsti is case-insensitive
# patsubsti is commonly used to change the file extensions of a list of files
OBJ_FILES=$(patsubst %.c,%.obj,$(C_SOURCES)) $(patsubst %.cpp,%.obj,$(patsubst %.cxx,%.obj,$(CPP_SOURCES)))