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

StackOverflow https://stackoverflow.com/questions/601516

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Error : *** target pattern contains no `%'.
Это было полезно?

Решение

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

Видимо, это нужно cygintl12.dll слишком.

Другие советы

  • откатить на 3.80(Геант4)

    • 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 и имел некоторые .о.д файлы висят в выходной папке.

Как только я вручную удалил .о.д файлы, проблема решена.Судя по всему, команда «Очистить» моей IDE (в данном случае CodeLite) не удаляла .о.д файлы.

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

build : $(NativeHeaders)/*

Если

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

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

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

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

Я получал эту ошибку, потому что в начале моих команд не было символа табуляции ( ).В моем наборе vim был расширенный табулятор, поэтому он заменял символ табуляции четырьмя пробелами.Когда я отключил это и заменил пробелы на табуляцию, это было исправлено.

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

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

Ошибки, сгенерированные Make

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

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

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

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

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

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

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

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

сейчас:
ARDUINO_BASE_DIR = \\programs/arduino

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

Пример:Путь = ;C:\yagarto\bin;C:\yagarto-tools\bin;C:\cygwin64\bin;

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top