Question

J'ai eu cette erreur lors de la (re) construction, en utilisant la version 3.81 de cygwin make.exe.

Error : *** target pattern contains no `%'.
Était-ce utile?

La solution

Cette erreur est due à la présence d'un ":" . Par conséquent, il ne prend plus en charge les chemins Windows. Vous devez télécharger la version 3.80 et remplacer le make.exe dans le répertoire \ bin .

Apparemment, il faut aussi cygintl12.dll .

Autres conseils

  • rétrograder pour faire 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
  • installez libintl2 à partir de l'installation de cygwin pour le requis cygintl-2.dll

La même erreur s'est produite lors de la tentative de création d'un projet sous Linux ou OSX, précédemment créé sur une machine Windows et contenant des fichiers .o.d dans le dossier de sortie.

Une fois les fichiers .o.d supprimés manuellement, le problème a été résolu. Apparemment, le message "Propre" La commande de mon IDE (CodeLite dans ce cas) ne supprimait pas les fichiers .o.d .

Probablement en raison de la présence de deux points après une lettre de lecteur. Par exemple, considérons

build : $(NativeHeaders)/*

Si

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

alors tout va bien, mais

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

entraîne l'erreur que vous obtenez.

J'obtenais cette erreur parce que je n'avais pas de caractère de tabulation (\ t) au début de mes commandes. J'avais expandtab dans mon ensemble vim, il remplaçait donc un caractère de tabulation par 4 espaces. Lorsque j'ai désactivé cette option et modifié les espaces en un onglet, cela a été corrigé

Le modèle cible ne contenait aucune erreur '%' lors de la création avec le NDK Android à l'aide de cygwin.

J'ai trouvé le lien suivant utile:

  

Erreurs générées par la marque

     
      
  • & # 8216; modèle cible manquant. Arrêtez. & # 8217;
  •   
  • & # 8216; plusieurs modèles de cibles. Arrêtez. & # 8217;
  •   
  • & # 8216; le modèle cible ne contient pas de «%». Arrêtez. & # 8217;
  •   
  • & # 8216; mélange de règles de modèle implicites et statiques. Arrêtez. & # 8217;
  •   
     

Ils sont générés pour des règles de modèle statique mal formées. Le premier signifie qu’il n’ya pas de motif dans la section cible de la règle; le second signifie qu'il y a plusieurs motifs dans la section cible; le troisième signifie que la cible ne contient pas de caractère de motif (%); et la quatrième signifie que les trois parties de la règle de modèle statique contiennent des caractères de modèle (%) & # 8211; seules les deux premières parties doivent l'être. Si vous voyez ces erreurs et que vous n'essayez pas de créer une règle de modèle statique, vérifiez la valeur des variables de votre liste cible et de vos listes de prérequis pour vous assurer qu'elles ne contiennent pas de deux points. Voir Syntaxe des règles de modèle statique .

Ainsi, ma solution incluait la modification de mes variables système du format Windows au format Unix, comme suit:

  • Au lieu de C: \ Android \ android-ndk-r10c , j'ai utilisé / cygdrive / c / Android / android-ndk-r10c pour le chemin NDK.

De même, j’ai modifié le chemin du projet NDK en / cygdrive / c / Android / projet / src / main / jni .

Dans mon cas, j’utilisais CMake sous Cygwin lorsque j’ai eu cette erreur. Il s'est avéré que la version Windows de CMake a été exécutée. Par la suite, les chemins Windows ont été utilisés dans le fichier make. J'ai installé la version de CMake de Cygwin via le programme d'installation et je l'ai fait fonctionner.

J'ai eu ce problème sous Linux lorsque le répertoire de construction contenait un ": " en effectuant une commande mercurial qui a créé un répertoire nommé "serveur: port".

J'ai dû modifier les éléments suivants dans mon fichier make pour qu'ils soient compatibles avec Make_381:
avant:
ARDUINO_BASE_DIR = C: \ programmes / arduino

maintenant:
ARDUINO_BASE_DIR = \\ programmes / arduino

Essayez ceci si vous utilisez Eclipse C / C ++ et que vous référencez des fichiers Cygwin sous Windows, assurez-vous que c: / cygwin / bin ou c: / cygwin64 / bin vient après vos outils de compilation préférés dans votre environnement Windows Path.

Exemple:     Path =; C: \ yagarto \ bin; C: \ yagarto-tools \ bin; C: \ cygwin64 \ bin;

Une fois les modifications apportées, quittez Eclipse et redémarrez-le pour qu'il prenne effet (le simple fait de redémarrer Eclipse sans quitter ne résoudra pas le problème.

Dans mon projet, le dossier obj était probablement corrompu et cette erreur me causait. Dossier obj supprimé manuellement. Ensuite, ndk-build est terminé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top