Можно ли сделать допустимые Make-файлы без символов табуляции?

target: dependencies
    command1
    command2

В моей системе (Mac OS X), make кажется, требует, чтобы это Make-файлы имело символ табуляции, предшествующий содержание каждого command строка, или это бросает синтаксическую ошибку.

Это - раздражение при создании или редактировании Make-файлов, потому что мне настраивали моего редактора, чтобы быть all-spaces-all-the-time.

Можно ли сделать допустимые Make-файлы без символов табуляции?

106
задан xyz 25 January 2010 в 09:15
поделиться

2 ответа

Это синтаксис странности / требования Make , оно не имеет ничего общего с Mac OS X. К сожалению, нет ничего, что вы не можете с этим поделать, если вы собираетесь использовать , сделать .

Редактировать : GNU Make теперь поддерживает пользовательский префикс рецепта. См. Этот ответ .

Вы не первый, кто не любит этот аспект , сделать . Чтобы цитировать Справочник ненавистников Unix :

Проблема с Makefile Dennis - это то, что когда он добавил строку комментариев, он непреднамеренно вставил место перед вкладкой символ в начале строки 2. Очень важная часть синтаксиса Makefiles. Все командные строки (линии, начинающиеся с CC в нашем примере), должны начинаться с вкладок. После того, как он сделал свои изменения, линия 2 не сделала, отсюда и ошибка.

"Так что?" Вы спрашиваете: «Что с этим с этим?»

В этом нет ничего плохого, само собой. Просто, когда вы считаете, как работают другие инструменты программирования в Unix, используя вкладки как часть синтаксиса, похоже на один из этих ловушек пангула в зеленых берах: бедный ребенок из Канзаса - это точка ходьбы перед Джоном Уэйн и не См. В конце концов, нет путешествий проводов для остерегания на кукурузных полях Канзас. Действительно!

111
ответ дан 24 November 2019 в 03:47
поделиться

не переносимым. Определенные вкусы делают абсолютно необходимыми символы табуляции. Еще одна причина для предпочтения табуляции перед пробелами :-)

.
-6
ответ дан 24 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: