Настроить 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)