Код VS c программирование, как исправить-Makefile: 2: *** отсутствует разделитель. Стоп.? - PullRequest
1 голос
/ 27 мая 2020

с использованием UBUNTU 20.4 и версии компилятора g cc (Ubuntu 9.3.0-10ubuntu2) 9.3.0,

Я очень новичок в vscode - я создал программу на C, получив ее основную аргументы две строки (как имена файлов)

, поэтому я создал этот Makefile, чтобы сэкономить время при проверке компиляции и запуска моего кода, и написал его так:

all: //tried with and without "all:" line//
gcc main.c
./a.out ex1.bin ex2.bin
rm -i a.out

и по какой-то причине после выполнения make я получаю это отклонение в Терминале и получаю следующее:

Makefile:2: *** missing separator. Stop.

что я сделал не так и как это исправить?

спасибо за помощников

1 Ответ

1 голос
/ 27 мая 2020

Посмотрите на Синтаксис правил создания :

Строки рецепта начинаются с символа табуляции (или первого символа в значении переменной .RECIPEPREFIX; см. Special Переменные). Первая строка рецепта может отображаться в строке после предварительных условий с помощью символа табуляции или может появляться в той же строке с точкой с запятой. В любом случае эффект один и тот же. Есть и другие отличия в синтаксисе рецептов. См. Написание рецептов в правилах.

Вы должны запускать команды под target all, используя символ TAB, поэтому убедитесь, что ваш редактор не добавляет пробелов:

all:
    gcc main.c
    ./a.out ex1.bin ex2.bin
    rm -i a.out

Поскольку вы используете VS Code, вы можно выбрать языковой режим Makefile в правом нижнем углу, чтобы быть уверенным, что каждый раз, когда вы нажимаете клавишу TAB, это будет настоящая TAB, а не пробелы.

enter image description here

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