Может кто-нибудь объяснить смысл $<
и [email protected]
в Makefile
?
Что означают $<и [email protected]в Makefile?
Ответ 1
$<
оценивает первое "предварительное условие" в правиле make, а [email protected]
оценивает "цель" в правиле make.
Вот пример:
file.o : file.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o [email protected]
В этом случае $<
будет заменен на file.c
, а [email protected]
будет file.o
.
Они более полезны в таких общих правилах, как это:
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o [email protected]
Подробнее см. данное руководство.
Ответ 2
[email protected]
является целью текущего правила.
$<
- это имя первого предпосылки ( "источника" ) текущего правила.
Итак, например:
.c.o:
$(CC) -c $(CFLAGS) -o [email protected] $<
Это приведет к расширению команды:
gcc -c -Wall -o foo.o foo.c
См. также GNU make manual § 10.5.3, "Автоматические переменные" .