Это мой make-файл:
all:ll
ll:ll.c
gcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<
clean :
\rm -fr ll
Когда я пытаюсь make clean
или make make
я получаю эту ошибку:
:makefile:4: *** missing separator. Stop.
Как я могу это исправить?
Ответы:
makefile очень глупо связан с вкладками, все действия каждого правила идентифицируются с помощью вкладок. И нет, 4 пробела не делают вкладку, только вкладка делает вкладку.
чтобы проверить я использую команду
cat -e -t -v makefile_name
Он показывает наличие вкладок с
^I
и окончания строк с$
обоими важны для обеспечения правильного завершения зависимостей, а вкладки отмечают действие для правил, чтобы их было легко идентифицировать с помощью утилиты make.Пример:
источник
makefile
из учебника, и это не сработало. Только после удаления пробелов и сдачиTab
вместо работало!-v
опция дляcat
команды здесь избыточна, потому что-e
означает-vE
и-t
означает-vT
.В VS Code просто нажмите «Пробел: 4» в правом углу и измените его на вкладку при редактировании вашего Makefile.
источник
Вы должны всегда писать команду после а, Tabа не пробела.
Это относится к
gcc
строке (строка № 4) в вашем случае. Вы должны вставить вкладку раньшеgcc
.Также замените
\rm -fr ll
наrm -fr ll
. Вставьте вкладки перед этой командой тоже.источник
Решением
PyCharm
было бы установитьMakefile support
плагин:Preferences
(cmd + ,
)Plugins
->Marketplace
Makefile support
, установите и перезапустите IDE.Это должно решить проблему и предоставить синтаксис для make-файла.
источник
Это довольно старый вопрос, но все же я хотел бы сказать еще об одном варианте использования
vi/vim
редактора для визуализации вкладок. Если выvi/vim
установили, откройтеMakefile
(напримерvim Makefile
) и введите:set list
. Это покажет количество вкладок, вставленных, как показано ниже,источник
Использование
.editorconfig
для автоматического исправления вкладок:источник
Ключевым моментом было «HARD TAB» 1. Проверьте, использовали ли вы TAB вместо пробелов 2. Проверьте .vimrc на «set tabstop = X»
источник
Если кто-либо из вас использует продукт от Intellij, решение для этого заключается в следующем:
Other File Types
.Use tab character
и будьте внимательны,Tab size
иIndent
значения должны быть 4.источник
Если вы используете mcedit для редактирования make-файла. Вы должны увидеть следующую отметку.
источник
Это потому, что табуляция заменяется пробелами. Чтобы отключить эту функцию, перейдите на
gedit-> Edit-> Настройки-> редактор
и удалите чек на
" заменить вкладку пробелом "
источник