Настроить Makefile

Я пытаюсь создать файл Makefile использовать с make так что я могу скомпилировать свои коды быстрее. Я хотел бы просто набрать в терминале:

make dev myOutputName

И это должно работать:

gcc -Wall -ansi -pedantic -O2 dev.c -o myOutputName

Пока у меня есть следующее Makefile:

CFLAGS = -Wall -ansi -pedantic -O2 -Wno-unused-result
CC = gcc

%: %.c
    $(CC) $(CFLAGS) $<  -o $\dev

Во-первых, это правильно выше? Я проверил это, и он компилируется, но имя выхода всегда dev,

Как я могу изменить это, чтобы я мог напечатать:

make dev myOutputName

И это будет работать:

gcc -Wall -ansi -pedantic -O2 dev.c -o myOutputName

2 ответа

Решение

Вам не нужен Makefile для этого, вы можете использовать функцию bash. Добавьте это к вашему ~/.bashrc файл:

function mkdev(){
    gcc -Wall -ansi -pedantic -O2 $1 -o $2
}

Затем, source ~/.bashrc (достаточно просто портировать на другие оболочки, если вы не используете bash) или просто открыть новый терминал, и вы можете скомпилировать свой код с помощью

mkdev dev myOutputName

В bash, $1, $2,..., $N являются аргументами, данными программе или функции. Итак, функция выше принимает 1-й аргумент и ищет файл с таким именем и .c расширение и второй аргумент - имя выхода.

make не принимает список аргументов. Требуется список целей. Вы можете установить переменные из вызывающей команды, хотя

make O=myOutputName dev 

В Makefile:

%: %.c
       gcc -Wall -ansi -pedantic -O2 $< -o $(O)
Другие вопросы по тегам