Мой make-файл не работает с ошибкой:
Makefile:34: *** multiple target patterns. Stop.
Что это на самом деле означает, как я могу это исправить?
( Руководство GNU make , написанное Captain Obvious, не помогает).
Нашел. У меня было правило по форме:
$(FOO): bar
где FOO
было установлено из команды оболочки, которая засорила его сообщением об ошибке, содержащим двоеточие.
Ответы:
У меня это было в Makefile
Это из-за
:
имени файла. Я решил это с помощьюисточник
C:/Qt/5.8/mingw53_32/bin/rcc.exe
) в одном из правил Makefile. Удалите этиmake clean
а затемmake
решил ее. Ошибочная строка была_build/nrf52840_xxaa/app_mpu.c.o: ../../../app_mpu.c \
Помимо необходимости избегать двоеточий, как в исходном ответе, я обнаружил, что если отступ отключен, вы потенциально можете получить ту же проблему. В одном make-файле мне пришлось заменить пробелы табуляцией, что позволило мне обойти ошибку.
источник
Я просто хочу добавить, что если вы получаете эту ошибку из-за того, что используете Cygwin make и автоматически сгенерированные файлы, вы можете исправить ее с помощью следующего sed:
sed -e 's@\\\([^ ]\)@/\1@g' -e 's@[cC]:@/cygdrive/c@' -i filename.d
Вам может потребоваться добавить больше символов, чем просто пробел в escape-список при первой замене, но вы поняли идею. Идея заключается в том, что / cygdrive / c - это псевдоним для c:, который программа make cygwin распознает.
И может также добавить
-e 's@^ \+@\t@'
на тот случай, если вы случайно начали с пробелов (хотя я / думаю / обычно это ошибка «отсутствует разделитель»).
источник
Я столкнулся с такой же ошибкой. После попыток я обнаружил, что это произошло из-за «пробела» в имени папки.
Например :
Раньше имя моей папки было: "Qt Projects"
Позже я изменил его на "QtProjects"
и моя проблема была решена.
Это очень просто, но иногда это серьезная проблема.
источник
Я имел эту проблему (двоеточие в имени цели) , потому что я был
-n
в моемGREP_OPTIONS
переменном окружении. Видимо, это привелоconfigure
кMakefile
некорректной генерации файла.источник
Моя IDE оставила смесь пробелов и вкладок в моем Makefile.
Настройка моего Makefile на использование только вкладок устранила эту ошибку для меня.
источник
Я также получил эту ошибку (в STM32CubeIDE на основе Eclipse в Windows).
После двойного щелчка по ошибке «несколько целевых шаблонов» он показал путь к
.ld
файлу. Оказывается, это еще одна проблема "нелегального характера". Оскорбительным персонажем был (подождите): =Эвристика недели: используйте только [a..z] в своих путях, так как обязательно будут другие недопустимые символы </vomit>.
Руководство GNU make явно не документирует это.
источник