Как скомпилировать C программу с именем переменной, используя Linux терминал? - PullRequest
1 голос
/ 12 марта 2020

Есть ли какой-нибудь возможный способ компиляции программы C более эффективным способом, чем выполнение всей команды.

gcc -g -Wall file_name.c -o file_name.out

Например, для использования команды make таким образом: make argument.c

Я хочу, чтобы команда make выполнила эту команду gcc -g -Wall argument.c -o argument_no_extension.out

Я пытался изучить vim, но для компиляции программы я должен записать всю команду или использовать клавиши со стрелками, чтобы запустить ее снова. Но задача vs-code. json, которая имеет следующие аргументы:

"gcc","-g", "${relativeFile}", "-o","${fileBasenameNoExtension}.out", "&&", "clear" , "&&" , "./${fileBasenameNoExtension}.out"

Ответы [ 3 ]

2 голосов
/ 12 марта 2020

Как уже упоминалось в комментариях, вы уже можете сделать

make file_name

и, используя правила сборки по умолчанию (так что вам даже не нужен Makefile), создаст исполняемый файл с именем "file_name", если там это C исходный файл с именем "file_name. c"

, если вам действительно нужен исполняемый файл с расширением .out, вы можете создать Makefile, который выглядит следующим образом

CFLAGS=-g -Wall

%.out: %.c
        $(CC) $(CFLAGS) -o $@ $^

Это определяет правило, которое для всего, что заканчивается на «.out», будет построено из соответствующего файла «. c». Поэтому, если вы наберете

make file_name.out

, как указано выше, он создаст «file_name.out», если у вас есть «file_name. c»

1 голос
/ 14 марта 2020

вы можете создать Makefile, похожий на:

CFLAGS := -Wall -Wextra -Wconversion -pedantic -std=gnu11 -ggdb

%.out : %$(parm).c
    cc  $(CFLAGS) $^ -o $@

Затем запустить Makefile для указанного c *. c использования файла:

make -Dparm=<desired file name>
0 голосов
/ 12 марта 2020

Просто создайте Makefile, который должен содержать команду, показанную вами

gcc -g -Wall file_name.c -o file_name.out

Поместите этот Makefile в каталог, где находится исходный код. Затем откройте командную строку и перейдите в каталог, где находится этот Makefile.

Затем выполните эту команду

make

Нет необходимости указывать make argument.c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...