Подтвердить что ты не робот

Cygwin делает ошибку: *** target pattern не содержит `% '

Я получил эту ошибку при создании (re), используя версию cygwin make.exe: 3.81.

Error : *** target pattern contains no `%'.
4b9b3361

Ответ 1

Эта ошибка возникает из-за наличия ":". Поэтому он больше не поддерживает пути Windows. Вам необходимо загрузить версию 3.80 и заменить make.exe в каталоге \bin.

По-видимому, ему тоже нужно cygintl12.dll.

Ответ 2

  • rollback сделать 3.80 (Geant4)

    • cd /usr/bin
    • mv make.exe make_381.exe
    • wget http://geant4.cern.ch/support/extras/cygwin/make.exe
    • chmod +x make.exe
  • установите libintl2 из настройки cygwin для требуемого cygintl-2.dll

Ответ 3

У меня возникла такая же ошибка при попытке создать проект на Linux или OSX, который ранее был построен на компьютере под управлением Windows, и в нем находились файлы .o.d.

Как только я вручную удалил файлы .o.d, проблема была решена. По-видимому, команда "Очистить" моей IDE (CodeLite в этом случае) не удаляла файлы .o.d.

Ответ 4

Скорее всего, из-за наличия двоеточия после буквы диска. Например, рассмотрим

build : $(NativeHeaders)/*

Если

NativeHeaders=../../../cpp/generated

тогда все хорошо, но

NativeHeaders=C:/dev/folder/cpp/generated

приводит к ошибке, которую вы получаете.

Ответ 5

Я получал эту ошибку, потому что у меня не было символа Tab (\ t) в начале моих команд. У меня был expandtab в моем наборе vim, поэтому он заменил символ табуляции на 4 пробела. Когда я отключил это и изменил пространство на вкладку, оно было исправлено.

Ответ 6

У меня была ошибка target pattern contains no '%' при построении с помощью Android NDK с использованием cygwin.

Я нашел ссылку полезной:

Ошибки, созданные путем создания

  • 'Отсутствует целевой шаблон. Стоп.
  • 'несколько целевых шаблонов. Стоп.
  • 'target pattern не содержит `%'. Стоп.
  • 'смешанные неявные и статические правила шаблонов. Стоп.

Они генерируются для неправильных правил статического шаблона. Первое означает, что в целевом разделе правила нет шаблона; второе означает, что в целевом разделе имеется несколько шаблонов; третий означает, что цель не содержит символа шаблона (%); а четвертое означает, что все три части правила статического шаблона содержат символы шаблона (%) - только первые две части должны. Если вы видите эти ошибки и не пытаетесь создать правило статического шаблона, проверьте значение любых переменных в ваших целевых и предварительных списках, чтобы убедиться, что они не содержат двоеточие. См. Синтаксис правил статических шаблонов.

Итак, мое решение включало изменение моих системных переменных из формата Windows в формат Unix, например:

  • Вместо C:\Android\android-ndk-r10c я использовал /cygdrive/c/Android/android-ndk-r10c для пути NDK.

Аналогично, я изменил путь проекта NDK на /cygdrive/c/Android/project/src/main/jni.

Ответ 7

В моем случае я использовал CMake под Cygwin, когда получил эту ошибку. Оказалось, что была выполнена версия Windows CMake. Впоследствии в файле make были использованы пути Windows. Я установил Cygwin версию CMake через программу установки и получил ее работу.

Ответ 8

У меня была эта проблема в Linux, когда каталог сборки содержал ":", вызванный выполнением меркулярной проверки, которая создала каталог с именем "server: port".

Ответ 9

Мне пришлось изменить следующее в моем файле make, чтобы быть совместимым с Make_381:
раньше:
ARDUINO_BASE_DIR = C:\programs/arduino

Сейчас:
ARDUINO_BASE_DIR =\\program/arduino

Ответ 10

Попробуйте, если вы запускаете Eclipse C/С++ и ссылаетесь на файлы из Cygwin под Windows, убедитесь, что c:/cygwin/bin или c:/cygwin64/bin идет после ваших предпочтительных инструментов компиляции в вашей среде Windows Path.

Пример:   Path =; C:\yagarto\bin; C:\yagarto-tools\bin; C:\cygwin64\bin;

После внесения изменений выйдите из Eclipse и перезапустите его, чтобы он вступил в силу (просто перезапуск Eclipse без выхода не устранит проблему.

Ответ 11

В моем проекте папка obj, вероятно, была повреждена, и я получил эту ошибку. Удаленная вручную папка obj. Затем ndk-build завершился нормально.