Correction: aucune cible spécifiée et aucun fichier makefile trouvé.



Essayez Notre Instrument Pour Éliminer Les Problèmes

Que vous travailliez avec Ubuntu, Debian ou Red Hat, vous pourriez voir une erreur qui lit make: *** Aucune cible spécifiée et aucun fichier makefile trouvé. Arrêtez. Puisqu'il s'agit d'un problème général lié à GNU Make dans son ensemble, vous pourriez le voir sur d'innombrables implémentations Unix. Cela signifie qu’il n’y a pas de fichier appelé makefile ou Makefile dans votre répertoire de travail actuel. Heureusement, c'est une erreur facile à corriger.



Méthode 1: recherche d'un Makefile dans le répertoire actuel

Vous souhaiterez peut-être essayer d'exécuter le faire commande une fois de plus dans le répertoire actuel pour voir si la même erreur vous est renvoyée. Ceci est particulièrement important si vous avez ouvert une nouvelle fenêtre de terminal et déjà essayé de localiser le bon répertoire ou si vous avez utilisé la commande cd depuis la dernière fois que vous avez essayé d'exécuter GNU make.



En supposant que c'est le cas, essayez d'exécuter le ls ou à toi pour voir quels fichiers se trouvent dans votre répertoire actuel. Vous n'êtes peut-être pas dans la partie droite de l'arborescence de répertoires. Si vous remarquez que vous voyez des répertoires qui appartiennent à votre répertoire racine / ou à votre répertoire home ~, alors vous voudrez exécuter la commande cd pour vous placer au bon endroit pour exécuter la commande make.

Il est possible que vous vous trouviez encore plus loin de là où vous êtes censé être. Dans notre exemple, nous avons essayé d'exécuter make à partir du répertoire / var / crash et avons constaté que cela ne fonctionnait pas du tout. On ne peut pas s'attendre à ce qu'il s'exécute à partir d'ici, car les seuls fichiers à cet emplacement particulier proviennent de rapports d'erreur sans rapport.

Il est plus que probable que vous souhaitiez exécuter votre commande make à partir d’un répertoire situé quelque part dans votre répertoire personnel. Par exemple, si vous construisiez la dernière version de GNU nano à partir des sources, vous auriez probablement un répertoire situé à ~ / nano-2.9.6 dans lequel vous pourriez accéder au cd et exécuter à nouveau make. Vous voudrez peut-être essayer de courir ls une fois de plus avant d'essayer de faire pour vous assurer qu'il y a un fichier makefile situé dans le répertoire pour vous permettre de construire.

N'oubliez pas que vous devez d'abord avoir configuré l'installation. La commande configure crée l'environnement parfait pour que le compilateur GNU s'épanouisse. Si vous ne trouvez pas de makefile même dans le bon répertoire de projet, exécutez ./configure pendant que vous êtes encore à l'intérieur, suivi de faire commander. Si cela se compile correctement, vous pouvez installer votre projet avec sudo faire installer , mais rappelez-vous que vous ne voulez rien construire en tant que root, vous ne voudrez donc jamais exécuter sudo make ou quoi que ce soit d'autre en dehors de l'installation.

Méthode 2: Spécification d'un Makefile personnalisé

En supposant que cela a résolu le problème, vous n’avez plus rien à faire. Cependant, il existe deux cas d’utilisation particuliers à prendre en compte si la méthode précédente n’a pas résolu votre problème. Les deux impliquent l'écriture de votre propre makefile pour un projet que vous avez configuré à la main.

Vous pouvez spécifier un makefile personnalisé qui s'appelle autre chose que littéralement makefile en utilisant l'option -f. Par exemple, si vous aviez un makefile de sauvegarde appelé makefile.bak, vous pouvez le spécifier en exécutant make -f makefile.bak à partir de la ligne de commande. Vous pouvez remplacer makefile.bak par n'importe quel nom de fichier et vous pouvez inclure l'option -i si vous voulez ignorer les erreurs dans un makefile personnalisé ou obsolète pendant que le compilateur est en cours d'exécution. Ce n'est généralement pas recommandé, car vous souhaiterez probablement modifier votre fichier Make en cas de problème.

L'autre cas d'utilisation très étroitement lié concerne une situation où la sensibilité à la casse est un problème. Les éléments suivants sont tous des fichiers séparés dans la manière Unix de faire des affaires:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Les programmes configurés personnalisés peuvent ne pas être en mesure de reconnaître un fichier Make avec une majuscule étrange. Si vous l’avez écrit à la main pour un projet de codage sur lequel vous travaillez, vous voudrez probablement le renommer makefile bien que vous puissiez utiliser l’option -i pour vous assurer que GNU make est capable de le trouver. N'oubliez pas que si vous avez tout écrit correctement, vous pouvez toujours exécuter ./configure à partir de votre propre projet pour le forcer à générer le bon environnement et éviter ce problème, pour commencer.

3 minutes de lecture