Comment utiliser GNU Make sous Windows?

95

J'ai installé MinGW et MSYS, ajouté C:\MinGW\binà PATHmais je ne peux toujours pas courir Makefile sur Windows' cmd. Je voudrais exécuter cmd.exe et tapez là, par exemple, make allmais mon cmd dit qu'il n'y a pas de telle commande.

Que devrais-je faire? Je ne veux pas utiliser le shell MSYS, ce n'est pas le but. Des idées sur comment utiliser GNU Make dans Windows cmd comme je peux le faire dans Ubuntu? Ça ne m'intéresse pas Cygwin.

yak
la source
1
Vous devrez l'ajouter à PATH sous les variables d'environnement dans vos paramètres système.
slugonamission
@slugonamission: je l'ai déjà fait, j'ai écrit :)
yak
Exécutez make.exe au lieu de make?
slugonamission
2
@slugonamission: je l'ai fait! J'ai ajouté C:\MinGW\msys\1.0\binà PATH, et cela a fonctionné! : D Mais j'ai toujours un problème, makeme montre: pastie.org/private/ixaaqbq2xl3geyg0emnow
yak
1
Dans votre allcible, hello.exe doit être sur la même ligne que allpour être considéré comme une dépendance de la cible. Sinon, fait partie de la tâche pour all.
slugonamission

Réponses:

101

Voici comment je l'ai fait fonctionner:

  copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe

Ensuite, je suis en mesure d'ouvrir une invite de commande et de taper make:

  C:\Users\Dell>make
  make: *** No targets specified and no makefile found.  Stop.

Ce qui signifie que ça marche maintenant!

user1594322
la source
10
@Imray I cas ce n'est toujours pas tout à fait clair: le make est distribué dans un fichier mingw32-make.exe. Étant donné que le répertoire se c:\MinGW\bintrouve sur le chemin du système, vous pouvez soit utiliser mingw32-makecomme commande, soit copier (version plus sûre du changement de nom) mingw32-make.exevers juste make.exe.
Tomáš Zato - Réintégrer Monica
1
Vous devriez éviter de faire de msys ou mingw une partie de vos variables d'environnement pour des raisons de ballonnement, mais aussi parce que le répertoire msys est local à lui-même. Le chemin dans msys vous permettra d'utiliser make si c'est dans le bac de mingw64, mais sans parler de ce problème. Ne parlez pas non plus du problème, vous devez créer un lien HARD vers mingw32-make.exe en tant que make.exe, rend la vie plus facile et ne doit pas cloner l'exe. Essayez:mklink /H C:\MinGW\bin\mingw32-make.exe C:\MinGW\bin\make.exe
user2262111
9

J'utilise GNU Make à partir du projet GnuWin32, voir http://gnuwin32.sourceforge.net/ mais il n'y a pas eu de mises à jour depuis un certain temps maintenant, donc je ne suis pas sûr du statut de ce projet.

Colin 't Hart
la source
6

Bien que cette question soit ancienne, elle est toujours posée par de nombreux utilisateurs de MSYS2 .

J'ai commencé à l'utiliser cette année pour remplacer CygWin, et je suis plutôt satisfait.

Pour installer make, ouvrez le shell MSYS2 et tapez les commandes suivantes:

# Update the package database and core system packages
pacman -Syu
# Close shell and open again if needed

# Update again
pacman -Su

# Install make
pacman -S make

# Test it (show version)
make -v
Delfino
la source
3

Vous pouvez ajouter le dossier d'application à votre chemin à partir d'une invite de commande en utilisant:

setx PATH "% PATH%; c: \ MinGW \ bin"

Notez que vous devrez probablement ouvrir une nouvelle fenêtre de commande pour que le paramètre de chemin modifié entre en vigueur.

Buggieboy
la source
2

Comme alternative, si vous souhaitez simplement installer make, vous pouvez utiliser le gestionnaire de paquets chocolatey pour installer gnu make en utilisant

choco install make -y

Cela traite tous les problèmes de chemin que vous pourriez avoir.

Ivo Merchiers
la source
0

user1594322 a donné une réponse correcte mais quand je l'ai essayé, j'ai rencontré des problèmes d'administration / d'autorisation. J'ai pu copier 'mingw32-make.exe' et le coller, en surpassant / contournant les problèmes d'administration, puis en éditant la copie dans 'make.exe'. Sur VirtualBox dans un invité Win7.

DBourne
la source
0

Bien que make lui-même soit disponible en tant qu'exécutable ( gnuwin32.sourceforge.netpackagemake ) autonome , l'utiliser dans un environnement de développement approprié signifie utiliser msys2 .

Git 2.24 (Q4 2019) illustre que:

Voir commit 4668931 , commit b35304b , commit ab7d854 , commit be5d88e , commit 5d65ad1 , commit 030a628 , commit 61d1d92 , commit e4347c9 , commit ed712ef , commit 5b8f9e2 , commit 41616ef , commit c097b95 (04 octobre 2019) et commit dbcd970 ) par Johannes Schindelin ( dscho) .
(Fusionné par Junio ​​C Hamano - gitster- dans commit 6d5291b , 15 octobre 2019)

test-tool run-command: apprendre à exécuter (des parties de) la suite de tests

Signé par: Johannes Schindelin

Git pour Windows saute à travers les cercles pour fournir un environnement de développement qui permet de construire Git et d'exécuter sa suite de tests.

À cette fin, un système MSYS2 complet, y compris GNU make et GCC, est proposé comme "le SDK Git pour Windows".
Cela a un prix: un téléchargement initial dudit SDK pèse plusieurs centaines de mégaoctets, et le SDK décompressé occupe environ 2 Go d'espace disque.

Un environnement de développement beaucoup plus natif sur Windows est Visual Studio. Pour aider les contributeurs à utiliser cet environnement, nous avons déjà une cible Makefile vcxprojqui génère un commit avec des fichiers de projet (et d'autres fichiers générés), et la vs/masterbranche de Git pour Windows est continuellement régénérée à l'aide de cette cible.

L'idée est de permettre la construction de Git dans Visual Studio et d'exécuter des tests individuels à l'aide d'un Git portable.

VonC
la source