1

Я пытаюсь создать файл 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 ответа2

0

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

make O=myOutputName dev 

В Makefile:

%: %.c
       gcc -Wall -ansi -pedantic -O2 $< -o $(O)
0

Вам не нужен 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 а вторым аргументом является выходное имя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .