webentwicklung-frage-antwort-db.com.de

Cygwin-Fehler: *** Das Zielmuster enthält kein "%".

Ich habe diese Fehlermeldung beim (Neu-) Bauen mit der Version cygwin make.exe: 3.81 erhalten.

Error : *** target pattern contains no `%'.
36
Reno

Dieser Fehler ist auf einen ":" zurückzuführen. Daher werden keine Windows-Pfade mehr unterstützt. Sie müssen Version 3.80 herunterladen und den make.exe im Verzeichnis \bin ersetzen.

Anscheinend braucht es auch cygintl12.dll.

39
Reno
  • rollback auf 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 vom cygwin-Setup für den erforderlichen cygintl-2.dll installieren

27
papahabla

Ich habe dieselbe Fehlermeldung erhalten, als ich versuchte, ein Projekt unter Linux oder OSX zu erstellen, das zuvor auf einem Windows-Computer erstellt wurde und einige .o.d -Dateien im Ausgabeordner hängen. 

Nachdem ich die Dateien .o.d manuell gelöscht habe, wurde das Problem behoben. Anscheinend löschte der "Clean" -Befehl meiner IDE (in diesem Fall CodeLite) die Dateien " .o.d " nicht.

9
Hristo Pavlov

Wahrscheinlich aufgrund eines Doppelpunkts nach einem Laufwerksbuchstaben. Zum Beispiel betrachten

build : $(NativeHeaders)/*

Ob 

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

dann ist alles gut, aber

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

führt zu dem Fehler, den Sie erhalten.

5
Bathsheba

Ich habe diese Fehlermeldung erhalten, weil ich am Anfang meiner Befehle kein Tabulatorzeichen (\ t) hatte. Ich hatte expandtab in meinem vim Set, so dass ein Tab-Zeichen mit 4 Leerzeichen ersetzt wurde. Als ich das abschaltete und Leerzeichen in einen Tab wechselte, wurde es behoben

3
Reza S

Ich hatte den target pattern contains no '%'-Fehler beim Bauen mit dem Android-NDK mit cygwin.

Ich fand den folgenden Link hilfreich:

Durch make erzeugte Fehler

  • Fehlendes Zielmuster Halt.' 
  • Mehrere Zielmuster. Halt.'
  • "Zielmuster enthält kein"% ". Halt.' 
  • „Gemischte implizite und statische Musterregeln. Halt.'

Diese werden für fehlerhafte statische Musterregeln generiert. Das erste bedeutet, dass sich im Zielabschnitt der Regel kein Muster befindet. die zweite bedeutet, dass sich im Zielabschnitt mehrere Muster befinden; das dritte bedeutet, dass das Ziel kein Musterzeichen (%) enthält. und der vierte bedeutet, dass alle drei Teile der statischen Musterregel Musterzeichen (%) enthalten - nur die ersten beiden Teile sollten dies tun. Wenn Sie diese Fehler sehen und nicht versuchen, eine statische Musterregel zu erstellen, überprüfen Sie überprüfen Sie den Wert aller Variablen in Ihrer Ziel- und Voraussetzungsliste, um sicherzustellen, dass sie keine Doppelpunkte enthalten. See Syntax statischer Musterregeln .

Meine Lösung umfasste also das Ändern meiner Systemvariablen vom Windows-Format in das Unix-Format:

  • Anstelle von C:\Android\android-ndk-r10c habe ich /cygdrive/c/Android/android-ndk-r10c für den NDK-Pfad verwendet.

Ebenso habe ich den NDK-Projektpfad in /cygdrive/c/Android/project/src/main/jni geändert.

2
Luis

In meinem Fall habe ich CMake unter Cygwin verwendet, als ich diesen Fehler bekam. Es stellte sich heraus, dass die Windows-Version von CMake ausgeführt wurde. Anschließend wurden Windows-Pfade in der Make-Datei verwendet. Ich habe die Cygwin-Version von CMake über das Setup-Programm installiert und funktioniert.

1
Tsjakka

Ich hatte dieses Problem unter Linux, als das Build-Verzeichnis ein ":" enthielt, das durch ein Mercurial-Checkout verursacht wurde, das ein Verzeichnis mit dem Namen "Server: Port" erstellte.

1
paulm

Ich musste Folgendes in meiner Make-Datei ändern, um mit Make_381 kompatibel zu sein:
Vor:
ARDUINO_BASE_DIR = C:\programme/arduino

jetzt:
ARDUINO_BASE_DIR = \\ programme/arduino

0
Gulzt

In meinem Projekt war der obj-Ordner wahrscheinlich beschädigt und ich habe diesen Fehler erhalten. Obj-Ordner manuell gelöscht. Dann fertig mit ndk-build.

0
Roy

Versuchen Sie dies, wenn Sie Eclipse C/C++ ausführen und Dateien von Cygwin unter Windows referenzieren. Stellen Sie sicher, dass c:/cygwin/bin oder c:/cygwin64/bin Ihren bevorzugten Compiler-Tools in Ihrer Windows Path-Umgebung folgt.

Beispiel: Pfad =; C:\yagarto\bin; C:\yagarto-tools\bin; C:\cygwin64\bin;

Nachdem Sie die Änderungen vorgenommen haben, beenden Sie Eclipse und starten Sie ihn erneut, damit er wirksam wird. Wenn Sie Eclipse nicht neu starten, wird das Problem dadurch nicht behoben.

0
Michele