Я получил эту ошибку при создании (re), используя версию cygwin make.exe: 3.81.
Error : *** target pattern contains no `%'.
Я получил эту ошибку при создании (re), используя версию cygwin make.exe: 3.81.
Error : *** target pattern contains no `%'.
Эта ошибка возникает из-за наличия ":"
. Поэтому он больше не поддерживает пути Windows.
Вам необходимо загрузить версию 3.80 и заменить make.exe
в каталоге \bin
.
По-видимому, ему тоже нужно cygintl12.dll
.
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
У меня возникла такая же ошибка при попытке создать проект на Linux или OSX, который ранее был построен на компьютере под управлением Windows, и в нем находились файлы .o.d.
Как только я вручную удалил файлы .o.d, проблема была решена. По-видимому, команда "Очистить" моей IDE (CodeLite в этом случае) не удаляла файлы .o.d.
Скорее всего, из-за наличия двоеточия после буквы диска. Например, рассмотрим
build : $(NativeHeaders)/*
Если
NativeHeaders=../../../cpp/generated
тогда все хорошо, но
NativeHeaders=C:/dev/folder/cpp/generated
приводит к ошибке, которую вы получаете.
Я получал эту ошибку, потому что у меня не было символа Tab (\ t) в начале моих команд. У меня был expandtab в моем наборе vim, поэтому он заменил символ табуляции на 4 пробела. Когда я отключил это и изменил пространство на вкладку, оно было исправлено.
У меня была ошибка 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
.
В моем случае я использовал CMake под Cygwin, когда получил эту ошибку. Оказалось, что была выполнена версия Windows CMake. Впоследствии в файле make были использованы пути Windows. Я установил Cygwin версию CMake через программу установки и получил ее работу.
У меня была эта проблема в Linux, когда каталог сборки содержал ":", вызванный выполнением меркулярной проверки, которая создала каталог с именем "server: port".
Мне пришлось изменить следующее в моем файле make, чтобы быть совместимым с Make_381:
раньше:
ARDUINO_BASE_DIR = C:\programs/arduino
Сейчас:
ARDUINO_BASE_DIR =\\program/arduino
Попробуйте, если вы запускаете 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 без выхода не устранит проблему.
В моем проекте папка obj, вероятно, была повреждена, и я получил эту ошибку. Удаленная вручную папка obj. Затем ndk-build завершился нормально.