Domanda

Ho riscontrato questo errore durante la (ri) costruzione, utilizzando la versione di cygwin make.exe: 3.81.

Error : *** target pattern contains no `%'.
È stato utile?

Soluzione

Questo errore è dovuto alla presenza di un ": " . Pertanto non supporta più i percorsi di Windows. Devi scaricare la versione 3.80 e sostituire il make.exe nella directory \ bin .

Apparentemente ha bisogno anche di cygintl12.dll .

Altri suggerimenti

  • rollback per effettuare 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
  • installa libintl2 dall'impostazione di cygwin per il cygintl-2.dll

  • richiesto

Ho avuto lo stesso errore durante il tentativo di creare un progetto su Linux o OSX, precedentemente creato su un computer Windows e con alcuni file .o.d in giro nella cartella di output.

Dopo aver eliminato manualmente i file .o.d il problema è stato risolto. Apparentemente il "Clean" il comando del mio IDE (CodeLite in questo caso) non stava eliminando i file .o.d .

Molto probabilmente a causa della presenza di due punti dopo una lettera di unità. Ad esempio, considera

build : $(NativeHeaders)/*

Se

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

allora va tutto bene, ma

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

genera l'errore visualizzato.

Stavo ricevendo questo errore perché non avevo un carattere Tab (\ t) all'inizio dei miei comandi. Nel mio set di VIM ho espanso, quindi stava sostituendo un carattere di tabulazione con 4 spazi. Quando l'ho spento e ho cambiato gli spazi in una scheda, è stato risolto

Il modello di destinazione non conteneva errori '%' durante la creazione con NDK Android utilizzando cygwin.

Ho trovato utile il seguente link:

  

Errori generati da Make

     
      
  • & # 8216; modello target mancante. Stop & # 8217.;
  •   
  • & # 8216; più pattern target. Stop & # 8217;.
  •   
  • & # 8216; il modello target non contiene `% '. Stop & # 8217.;
  •   
  • & # 8216; regole miste implicite e statiche. Stop & # 8217;.
  •   
     

Questi sono generati per regole di modello statico non valide. Il primo significa che non esiste alcun pattern nella sezione target della regola; il secondo significa che ci sono più pattern nella sezione target; il terzo significa che il target non contiene un carattere di pattern (%); e il quarto significa che tutte e tre le parti della regola del pattern statico contengono caratteri del pattern (%) & # 8211; solo le prime due parti dovrebbero. Se vedi questi errori e non stai provando a creare una regola di pattern statica, controlla il valore di tutte le variabili nel tuo target e negli elenchi dei prerequisiti per assicurarti che non contengano due punti. Vedi Sintassi delle regole dei pattern statici .

E così, la mia soluzione includeva la modifica delle mie variabili di sistema dal formato Windows al formato Unix in questo modo:

  • Invece di C: \ Android \ android-ndk-r10c , ho usato / cygdrive / c / Android / android-ndk-r10c per il percorso NDK.

Allo stesso modo, ho cambiato il percorso del progetto NDK in / cygdrive / c / Android / project / src / main / jni .

Nel mio caso stavo usando CMake sotto Cygwin quando ho riscontrato questo errore. Si è scoperto che è stata eseguita la versione Windows di CMake. Successivamente, i percorsi di Windows sono stati utilizzati nel file make. Ho installato la versione di Cygwin di CMake tramite il programma di installazione e l'ho fatta funzionare.

Ho avuto questo problema su Linux quando la directory di build conteneva un ": " causato da un checkout mercuriale che ha creato una directory denominata " server: port " ;.

Ho dovuto modificare quanto segue nel mio file make per essere compatibile con Make_381:
prima:
ARDUINO_BASE_DIR = C: \ programmi / arduino

ora:
ARDUINO_BASE_DIR = \\ programmi / arduino

Prova questo se stai eseguendo Eclipse C / C ++ e facendo riferimento a file da Cygwin in Windows, assicurati che c: / cygwin / bin o c: / cygwin64 / bin venga dopo i tuoi strumenti di compilazione preferiti nel tuo ambiente Windows Path.

Esempio:     Percorso =; C: \ yagarto \ bin; C: \ yagarto-tools \ bin; C: \ cygwin64 \ bin;

Dopo aver apportato le modifiche, esci da Eclipse e riavvia affinché abbia effetto (il semplice riavvio di Eclipse senza uscire non risolverà il problema.

Nel mio progetto, probabilmente la cartella obj era corrotta e ho riscontrato questo errore. Cartella obj eliminata manualmente. Quindi ndk-build è stato completato correttamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top