Как перезаписать переменную в make-файле из терминала

Я создал простой make-файл, т.е.

COMMON=hello
all:
  gcc $(COMMON).c -o $(COMMON).o

Каталог, в котором я запускаю make-файл, содержит три файла: hello.c add.c multiply.c factorial.c и subtraction.c.

Когда я собираю это в терминале, используя make команда, привет печатается. Теперь я хочу внести изменения в программу так, чтобы при написании "make add", "make multiply" или "make factorial" соответствующая программа компилировалась.

1 ответ

Просто укажите это в командной строке.

make COMMON=bye

Если цель предсказуема по именам файлов в текущем каталоге, вам вообще не нужен Makefile, потому что Make уже знает, как сделать multiply от multiply.c,

.PHONY: all
all: hello add multiply factorial

Если вы действительно хотите явный рецепт, попробуйте что-то вроде этого.

%: %.c
        gcc -o $@ $^
Другие вопросы по тегам