2016-03-03 2 views
0

Я столкнулся с некоторым кодом в файле makefile, например, следующим. Может ли кто-нибудь научить меня, что означает% в следующем коде.% встроенная функция имени файла GNU make

$(addsuffix .o, % $(objects)) 

Я искал GNU Make ссылку и нашел

$(addsuffix pattern, names...) 

Но что делает% отметку в этой функции означает.

$(addsuffix .o, % $(objects)) 

Благодарим за помощь.

ответ

0

Почему бы просто не попробовать и не посмотреть, что он делает? В аргументе функции addsuffix, % означает %. Это не особенное, это просто буквальный процентный характер. Таким образом, выход из этого:

objects = foo bar biz baz 
$(info $(addsuffix .o, % $(objects)) 

будет:

%.o foo.o bar.o biz.o baz.o 
+0

Спасибо !!! Вы дали мне очень важный намек. % здесь будет расширено до '% .o', которое принимает любой конец файла .o –

+0

Если эта конструкция используется в целевом контексте, имейте в виду, что она не переносима: более новые версии GNU make не допускают шаблонов и явные цели должны появляться в том же правиле. – MadScientist