¿Cómo instalar y usar "make" en Windows?

127

Estoy siguiendo las instrucciones de alguien cuyo repositorio cloné en mi máquina. Lo que quiero es simple: poder usar el makecomando como parte de la configuración del entorno de código. Pero estoy usando Windows, y busqué en línea solo para encontrar un archivo make.exe para descargar, un make-4.1.tar.gzarchivo para descargar (no sé qué hacer con él a continuación) y cosas sobre la descarga de MinGW (para GNU; pero después de instalarlo no encontré ninguna mención de "make").

No quiero un compilador GNU o cosas relacionadas; Solo quiero usar "make" en Windows. Por favor, dígame qué debo hacer para lograrlo.

¡Gracias por adelantado!

Hashem Elezabi
fuente
1
makeEs poco probable que la simple instalación resuelva su problema. Muchos Makefiles están escritos para sistemas similares a Unix y requerirán que instale una cantidad significativa de utilidades adicionales (incluido un compilador compatible si el proyecto involucra código compilado) como Cygwin, o simplemente cambiar a una plataforma como WSL si realmente no puede liberar usted mismo desde Windows por completo.
tripleee

Respuestas:

159

makees un comando GNU, por lo que la única forma de obtenerlo en Windows es instalando una versión de Windows como la proporcionada por GNUWin32 . O puede instalar MinGW y luego hacer:

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

o cree un enlace al ejecutable real, en su RUTA. En este caso, si actualiza MinGW, el enlace no se elimina:

mklink c:\bin\make.exe C:\MinGW\bin\mingw32-make.exe

Otra opción es usar Chocolatey . Primero necesitas instalar este administrador de paquetes. Una vez instalado, simplemente necesita instalar make:

choco install make

Última opción es la instalación de un subsistema de Windows para Linux (WSL) , por lo que tendrá una distribución de Linux de su elección incrustado en Windows 10, donde podrás instalar make, gccy todas las herramientas que necesita para construir programas C.

Eduardo Yáñez Parareda
fuente
1
¡Gracias! No sabía que make era un comando GNU. Verifiqué la ruta que proporcionó y encontré make.exe pero en una ruta similar (C: \ MinGW \ msys \ 1.0 \ bin \ make.exe). ¡Agregué esto a la variable PATH y funciona!
Hashem Elezabi
2
Una forma más sencilla sería la de crear un enlace simbólico: mklink C:\bin\make.exe C:\MinGW\bin\mingw32-make.exe. Entonces, en el futuro, si actualiza su mingw, el enlace estaría intacto.
Kumarharsh
1
Solo usando MSYS2 no pude usar mklink. MSYS2 pacmanpuede instalar una marca pacman -S makeque no funciona correctamente . En cambio, mingw32-make.exeya estaba presente en msys64/mingw64/bin. Quizás se envió con gcc. Sin embargo, estoy confundido por qué no se llama simplemente make.exe. Solo lo copié a make.exe.
Neonit
2
Quizás sea útil mencionar que Visual Studio incluye su propia utilidad 'make' nmake, consulte el documento . Se puede usar desde el símbolo del sistema de VS, pero, por supuesto, puede agregarlo a la ruta. Sin embargo, tenga en cuenta que las funcionalidades son bastante limitadas en comparación con la marca GNU, y la documentación es casi inexistente ...
jmon12
1
@notacorn, pero puedes acceder a tus carpetas de "Windows" desde ambos. Git bash con / c, WSL con / mnt / c.
Eduardo Yáñez Parareda
186

GNU make está disponible en chocolatey.

  • Instale chocolatey desde aquí .

  • A continuación, choco install make.

Ahora podrá utilizar Make en Windows.
Intenté usarlo en MinGW, pero también debería funcionar en CMD.

Vasantha Ganesh K
fuente
31
La solución más simple en mi opinión a partir de 2019.
My Stack Overfloweth
¿Hay alguna razón por la que esto no funcionaría en Bash? @vasantha
user3614648
Nota: Es posible que deba configurar el proxy correcto usandochoco config set proxy ADDRESS:PORT
weshouman
También hay primicia si no le gusta cómo chocolaty requiere una sesión de administrador de powershell: github.com/lukesampson/scoop/wiki/Chocolatey-Comparison
Jonathan Landrum
18

La respuesta aceptada es una mala idea en general porque la creada manualmente se make.exequedará y puede causar problemas inesperados. De hecho, rompe RubyInstaller: https://github.com/oneclick/rubyinstaller2/issues/105

Una alternativa es instalar make a través de Chocolatey (como lo señaló @Vasantha Ganesh K)

Otra alternativa es instalar MSYS2 de Chocolatey y usar makefrom C:\tools\msys64\usr\bin. Si makeno se instala automáticamente con MSYS2, debe instalarlo manualmente a través de pacman -S make(como lo señalan @Thad Guidry y @Luke).

este es mi diseño
fuente
3
Instalé esto usando Chocolatey pero no hay make.exe en C:\tools\msys64\usr\bin??
Rosdi Kasim
1
puede encontrar pacman en esa carpeta, luego use el paso 3 de @thad
Lucas
8

Si está utilizando Windows 10, está integrado en la función del subsistema de Linux. Simplemente inicie un indicador de Bash (presione la tecla de Windows, luego escriba bashy elija "Bash en Ubuntu en Windows"), cden el directorio que desea crear y escriba make.

FWIW, las unidades de Windows se encuentran /mnt, por ejemplo, la C:\unidad está /mnt/cen Bash.

Si Bash no está disponible en el menú de inicio, aquí hay instrucciones para activar esa función de Windows (solo Windows de 64 bits):

https://docs.microsoft.com/en-us/windows/wsl/install-win10

Stefan
fuente
4
El subsistema Linux no está disponible en Windows 10 Home.
Martin Gray
He estado usando Windows Subsystem para Linux (específicamente, Ubuntu 20.04 LTS, descargado de Microsoft Store) en mi Win10 Home ver.1809 durante los últimos dos meses sin ningún problema. Hablando de make, está disponible para mí directamente desde dentro de la ventana de la Terminal de Windows sin siquiera iniciar bash primero. Ordenado.
Igor Soudakevitch
5

Descarga make.exe de su sitio oficial GnuWin32

  • En la sesión de descarga, haga clic en Paquete completo, excepto fuentes .

  • Siga las instrucciones de instalación.

  • Una vez terminado, agregue el <installation directory>/bin/a la variable PATH.

Ahora podrá utilizar make en cmd.

Manu S Pillai
fuente
¿Podría ayudarme a configurar el directorio en la variable PATH?
shomit
3

Otra alternativa es que si ya instaló minGW y agregó la carpeta bin a la variable de entorno Path, puede usar "mingw32-make" en lugar de "make".

También puede crear un enlace simbólico de "make" a "mingw32-make", o copiar y cambiar el nombre del archivo. No recomendaría las opciones antes, funcionarán hasta que haga cambios en minGW.

Persike
fuente
¿Puede especificar lo que quiere decir con "las opciones anteriores"?
Jona
1

Podría sugerir un enfoque paso a paso.

  1. Visite GNUwin
  2. Descarga el programa de instalación
  3. Siga las instrucciones e instale GNUWin. Debe prestar atención al directorio donde se está instalando su aplicación. (Lo necesitará más tarde1)
  4. Siga estas instrucciones y agregue make a sus variables de entorno. Como te dije antes, ahora es el momento de saber dónde se instaló tu aplicación. FYI: el directorio predeterminado es C:\Program Files (x86)\GnuWin32\.
  5. Ahora, actualice PATH para incluir el directorio bin del programa recién instalado. Un ejemplo típico de lo que se podría agregar a la ruta es:...;C:\Program Files (x86)\GnuWin32\bin
Jaguarfi
fuente
0

Una solución que puede resultar útil si desea utilizar el emulador de línea de comandos cmder. Puede instalar el instalador del paquete de forma selectiva. Primero instalamos chocately en el símbolo del sistema de Windows usando la siguiente línea:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
refreshenv

Después de instalar chocolatey, se puede usar el comando choco para instalar make. Una vez instalado, deberá agregar un alias a /cmder/config/user_aliases.cmd. Debe agregarse la siguiente línea:

make="path_to_chocolatey\chocolatey\bin\make.exe" $*

Entonces, Make operará en el entorno de cmder.

MATEO SILVEO
fuente