web-dev-qa-db-fra.com

'make' n'est pas reconnu comme une commande interne ou externe, un programme exploitable ou un fichier de traitement par lots - Windows 7

J'ai Windows 7 et j'ai essayé d'utiliser la commande "make" mais "make" n'est pas reconnu comme une commande interne ou externe.

J'ai fait Start -> cmd -> run -> make, qui affiche:

'make' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier batch.

Puis j'ai tapé 'mingw32-make' à la place de 'make' (Start -> cmd -> run -> mingw32-make) et j'ai le même résultat

'mingw32-make' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes.

Que dois-je faire ensuite pour résoudre ce problème?

26
programmer

Votre problème est probablement que le shell ne sait pas où trouver votre programme make. Si vous voulez l’utiliser de "n’importe où", vous devez le faire, sinon vous devrez ajouter le chemin complet à chaque appel, ce qui est assez fastidieux. Par exemple:

"c:\program files\gnuwin32\bin\make.exe" option1=thisvalue option2=thatvalue

Cela doit être pris comme exemple, cela ressemblait à quelque chose comme ceci sur XP, je ne peux pas dire sur W7. Mais gnuwin32 fournissait des packages utiles "linux-world" pour Windows. Vérifiez les détails sur votre fournisseur pour make.

Donc, pour éviter d'entrer le chemin, vous pouvez ajouter le chemin à votre variable d'environnement PATH. Vous trouverez ceci facilement . Pour vous assurer qu'il est enregistré par le système d'exploitation, ouvrez une console (exécutez cmd.exe) et entrez $PATH devrait vous donner une liste des chemins d'accès par défaut. Vérifiez que l'emplacement de votre programme make est présent.

23
kebs

Dans Windows 10, j'ai résolu ce problème en ajoutant "C:\MinGW\bin" à Path, puis appelé avec MinGW32-make not make

11
user61871
  1. Tout d’abord, assurez-vous d’avoir installé MinGW.
  2. Dans le gestionnaire d'installation de MinGW, vérifiez si le package mingw32-make est installé.
  3. Vérifiez si vous avez ajouté le dossier bin MinGW à votre PATH. tapez PATH dans votre ligne de commande et recherchez le dossier. Ou sous Windows 10, accédez à la variable Control Panel\System and Security\System --> Advanced system settings --> Environment Variables --> System Variables find Path, sélectionnez Edit et vérifiez si elle est présente. Sinon ajoutez-le!
  4. Comme expliqué ici , créez un nouveau fichier dans l’un de vos dossiers PATH. Par exemple, créez mingwstartup.bat dans le dossier bin MinGW. écrivez la ligne doskey make=mingw32-make.exe à l'intérieur, sauvegardez-la et fermez-la.
  5. ouvrez l'éditeur de registre en exécutant regedit. Comme expliqué ici dans HKEY_LOCAL_MACHINE ou HKEY_CURRENT_USER, allez à \Software\Microsoft\Command Processor avec le bouton droit de la souris sur le panneau droit New --> Expandable String Value et nommez-le AutoRun. double-cliquez et entrez le chemin d'accès à votre fichier .bat en tant que données de la valeur (par exemple "C:\MinGW\bin\mingwstartup.bat"), le résultat devrait ressembler à ceci:

enter image description here

maintenant, chaque fois que vous ouvrez une nouvelle commande terminal make, le mingw32-make.exe sera exécuté. J'espère que ça aide.

3
Foad

J'utilise Windows 8. J'ai eu le même problème. J'ai ajouté le chemin "C:\MinGW\bin" à la variable d'environnement système appelée "chemin", puis cela a fonctionné. Peut-être, vous pouvez essayer la même chose. J'espère que ça va aider!

1
Toothless

'make' est une commande pour UNIX/Linux. Au lieu de cela, utilisez la commande "nmake" sous MS Windows. Ou vous feriez mieux d'utiliser un émulateur comme CYGWIN.

1
user3649944

Si vous avez déjà installé MinGW dans Windows 7, procédez simplement comme suit:

  1. Faites une autre copie du fichier C:\MinGW\bin\mingw32-make.exe dans le même dossier.
  2. Renommez le nom de fichier mingw32-make.exe en make.exe.
  3. Exécutez la commande make à nouveau.

Testé en travaillant dans mon ordinateur portable pour les étapes ci-dessus.

0
Jerry Chong

Recherchez make.exe à l'aide de la fonction de recherche. Lorsqu'il est trouvé, notez le chemin absolu du fichier. Vous pouvez le faire en cliquant avec le bouton droit de la souris sur le nom du fichier dans le résultat de la recherche, puis sur les propriétés ou sur le dossier de localisation ouvert (vous n'êtes pas sûr du libellé exact, je n'utilise pas de paramètres régionaux anglais).

Lorsque vous ouvrez la console de ligne de commande (cmd) au lieu de saisir make, tapez le chemin d'accès complet et son nom, par exemple. C:\Windows\System32\Java (c'est pour Java ...).

Alternativement, si vous ne voulez pas fournir le chemin complet à chaque fois, vous avez alors plusieurs possibilités:

  • faites de C:\Windows\System32\ le répertoire de travail en cours, en utilisant cd au niveau cmd.
  • ajoutez C:\Windows\System32\ à votre variable d’environnement PATH.

Refs:

0
mins

Comme d'autres réponses l'ont déjà suggéré, vous devez avoir installé MinGW. La partie supplémentaire consiste à ajouter les deux dossiers suivants à la variable d’environnement PATH.

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin

Évidemment, ajustez le chemin en fonction de l'emplacement d'installation de MinGW. Aussi, n'oubliez pas d'ouvrir un nouveau terminal en ligne de commande.

0
Tushar

utilisez mingw32-make au lieu de cmake dans Windows

0
shubham ghosh

mon code batte

====== Exécutez 'cmd' en tant qu'administrateur 2 utilisez 'setx' ===== setx scoop "C:\Utilisateurs \% nom d'utilisateur%\scoop"/M

echo %scoop%

setx scoopApps "%scoop%\apps" /M

echo %scoopApps%

scoop install make 

======= Phase 3: Créez la variable d'environnement makePath ===

setx makePath "%scoopApps%/make" /M

echo %makePath%

setx makeBin "%makePath%/Bin" /M

echo %makeBin%

setx Path "%Path%;%makeBin%" /M


echo %Path%
0
小色狼

C'est une vieille question, mais aucune des réponses ici ne fournit assez de contexte pour qu'un débutant puisse choisir laquelle choisir.

Qu'est-ce que make?

make est un utilitaire Unix traditionnel qui lit un Makefile pour décider des programmes à exécuter pour atteindre un objectif particulier. En règle générale, cet objectif consiste à créer un logiciel unique. mais make est assez général pour être utilisé pour diverses autres tâches, comme assembler un PDF à partir d'une collection de fichiers source TeX, ou récupérer les dernières versions de chacune des pages Web. .

En plus d'encapsuler les étapes pour atteindre une cible individuelle, make réduit le temps de traitement en évitant de réexécuter les étapes déjà terminées. Pour ce faire, il compare les horodatages entre les dépendances. si A dépend de B mais que A est plus récent que B, il n’est pas nécessaire de make A. Bien entendu, pour que cela fonctionne correctement, la Makefile doit documenter toutes ces dépendances.

A: B
    commands to produce A from B

Notez que l'indentation doit consister en un caractère de tabulation littéral. Ceci est un erreur de débutant commune.

Versions courantes de make

L'original make était plutôt piéton. Sa lignée se poursuit à ce jour dans BSD make, à partir duquel nmake est dérivé. En gros, cette version fournit la fonctionnalité make définie par POSIX, avec quelques améliorations et variations mineures.

GNU make, en revanche, étend de manière significative le formalisme, au point où un GNU Makefile ne fonctionne probablement pas avec d'autres versions (ou même occasionnellement). anciennes versions de GNU make). Il existe une convention pour appeler de tels fichiers GNUmakefile à la place de Makefile, mais cette convention est largement ignorée, en particulier sur les plateformes comme Linux où GNU make est le de facto standard make.

Les signes avant-coureurs indiquant qu'une Makefile utilise GNU make les conventions sont l'utilisation de := au lieu de = pour les affectations de variables (bien qu'il ne s'agisse pas exclusivement d'un GNU feature) et une multitude de fonctions telles que $(Shell ...), $(foreach ...), $(patsubst ...) etc.

Alors, de quoi ai-je besoin?

Eh bien, cela dépend vraiment de ce que vous espérez accomplir.

Si le logiciel que vous espérez créer contient un fichier vcproj ou similaire, vous voudrez probablement l'utiliser à la place et ne pas essayer d'utiliser make.

Dans le cas général, MinGW make est un port Windows de GNU make pour Windows, il doit généralement faire face à tous les Makefile que vous lui lancez.

Si vous savez que le logiciel a été écrit pour utiliser nmake et que vous l'avez déjà installé, ou qu'il est facile à obtenir, vous pouvez peut-être vous en servir.

Vous devez comprendre que si le logiciel n’a pas été écrit pour Windows, ni explicitement porté sur lui, il est peu probable qu’il soit compilé sans modifications importantes. Dans ce scénario, obtenir make à exécuter est le moindre de vos problèmes, et vous aurez besoin d'une bonne compréhension des différences entre la plate-forme d'origine et Windows pour avoir une chance de le résoudre vous-même.

De manière plus détaillée, si la variable Makefile contient des commandes Unix telles que grep ou curl ou yacc, votre système doit également installer ces commandes. En dehors de cela, C ou C++ (ou plus généralement, le code source dans n'importe quel langage) écrit pour une plate-forme différente peut tout simplement ne pas fonctionner - du tout, ou comme prévu (ce qui est souvent pire) - sous Windows.

0
tripleee