Как установить и использовать make в Windows?

Я следую инструкциям человека, репозиторий которого я клонировал на свою машину. Я хочу просто: иметь возможность использовать команду make как часть настройки среды кода. Но я использую Windows и поискал в Интернете только файл make.exe для загрузки, файл make-4.1.tar.gz для загрузки (я не знаю, что с ним делать дальше) и кое-что о загрузке MinGW (для GNU; но после его установки я не нашел упоминания о "make").

Мне не нужен компилятор GNU или что-то подобное; Я хочу использовать только make в Windows. Скажите, пожалуйста, что мне нужно сделать для этого?

Заранее спасибо!


person Hashem Elezabi    schedule 20.08.2015    source источник
comment
Простая установка make вряд ли решит вашу проблему. Многие Makefile написаны для Unix-подобных систем и потребуют от вас установки значительного количества дополнительных утилит (включая поддерживаемый компилятор, если проект включает скомпилированный код), таких как Cygwin, или просто переключение на платформу, такую ​​как WSL, если вы действительно не можете освободить себя из Windows целиком.   -  person tripleee    schedule 08.06.2019


Ответы (10)


make - это команда GNU, поэтому единственный способ получить ее в Windows - это установить версию Windows, подобную той, которую предоставляет GNUWin32. В любом случае, есть несколько способов получить это:

  1. Самый простой выбор - использовать Chocolatey. Сначала вам нужно установить этот менеджер пакетов. После установки вам просто необходимо установить make (вам может потребоваться запустить его в командной строке с повышенными правами / администратором):

    choco install make
    
  2. Другой рекомендуемый вариант - установка подсистемы Windows для Linux (WSL / WSL2), поэтому у вас будет выбранный вами дистрибутив Linux, встроенный в Windows 10, где вы сможете установить make, gcc и все инструменты, необходимые для создания программ C.

  3. Для более старых версий Windows (MS Windows 2000 / XP / 2003 / Vista / 2008/7 с msvcrt.dll) вы можете использовать GnuWin32.

Устаревшей альтернативой был MinGw, но проект кажется нужно отказаться, поэтому лучше выбрать один из предыдущих вариантов.

person Eduardo Yáñez Parareda    schedule 20.08.2015
comment
Спасибо! Я не знал, что make была командой GNU. Я проверил указанный вами путь и нашел make.exe, но по аналогичному пути (C: \ MinGW \ msys \ 1.0 \ bin \ make.exe). Я добавил это в переменную PATH, и она работает! - person Hashem Elezabi; 21.08.2015
comment
Более простой способ - создать символическую ссылку: mklink C:\bin\make.exe C:\MinGW\bin\mingw32-make.exe. Так что в будущем, если вы обновите свой mingw, ссылка останется неизменной. - person kumarharsh; 11.02.2019
comment
Просто используя MSYS2, я не мог использовать mklink. pacman MSYS2 может установить make pacman -S make, который работает некорректно. Вместо этого mingw32-make.exe уже присутствовал в msys64/mingw64/bin. Возможно, он поставлялся с gcc. Я не понимаю, почему он не называется просто make.exe. Я просто скопировал его на make.exe. - person Neonit; 22.07.2019
comment
Возможно, полезно упомянуть, что Visual Studio поставляет свою собственную утилиту make, nmake, см. doc. Его можно использовать из командной строки VS, но вы, конечно, можете добавить его в путь. Однако обратите внимание, что функциональные возможности довольно ограничены по сравнению с GNU make, а документация практически отсутствует ... - person jmon12; 23.02.2020
comment
WSL работает в совершенно другой файловой системе, чем, скажем, git bash, верно? - person notacorn; 10.07.2020
comment
Вроде @notacorn, но вы можете получить доступ к своим папкам Windows из них обоих. Git bash с / c, WSL с / mnt / c. - person Eduardo Yáñez Parareda; 10.07.2020
comment
Это устарело? Я установил MinGW, но у меня нет mingw32-make.exe, только mingw-get.exe - person dustytrash; 26.11.2020
comment
@dutytrash, тогда, вероятно, вам нужно загрузить дополнительную утилиту mingw32-make, как это объясняется на странице HowTo of MinGW, посмотрите здесь: mingw.org/wiki/InstallationHOWTOforMinGW - person Eduardo Yáñez Parareda; 26.11.2020
comment
Make - это команда GNU ... вроде как, но НЕ ТОЧНО. Оригинальный Make много десятилетий назад был инструментом Unix. Затем GNU клонировал его. Затем GNU расширила его настолько, что пришлось отказаться от обратной совместимости. Версия GNU настолько лучше, что очень немногие больше используют исходную версию Unix, и она в значительной степени исчезла. Многие системы Linux содержат как исходный Make (называемый «make»), так и GNU-версию Make (называемый «gmake»). - person Chuck Kollars; 30.12.2020
comment
Если вы пользователь Chocolatey, а если нет, то почему вы еще не сделали этого, вариант 2 определенно вам подойдет. Просто и надежно. Работал без проблем. - person Roger Spurrell; 12.02.2021
comment
работал для меня как шарм! - person eugene.polschikov; 22.02.2021
comment
Похоже, срок действия mingw.org истек (RIP!). Есть где-нибудь зеркало? - person Sleavely; 09.03.2021
comment
@Sleavely Я не знаю, но очевидно, что лучший выбор - Chocolatey или просто WSL / WSL2 - person Eduardo Yáñez Parareda; 10.03.2021
comment
Ссылка GnuWin32 неверная - также для ссылок на шоколадку - person thybzi; 24.04.2021
comment
pacman -S make - вот ответ - person Sam Ginrich; 29.05.2021

GNU make доступен на шоколадном языке.

  • Установите шоколад с здесь.

  • Затем choco install make.

Теперь вы сможете использовать Make в Windows.
Я пробовал использовать его в MinGW, но он должен работать и в CMD.

person Vasantha Ganesh    schedule 08.01.2019
comment
Самое простое решение IMO по состоянию на 2019 год. - person My Stack Overfloweth; 31.01.2019
comment
Примечание. Возможно, потребуется установить правильный прокси с помощью choco config set proxy ADDRESS:PORT - person weshouman; 09.10.2019
comment
Также есть совок, если вам не нравится, как chocolaty требует сеанса административной оболочки PowerShell: github.com / lukesampson / scoop / wiki / Chocolatey-Comparison - person Jonathan Landrum; 24.01.2020

Принятый ответ в целом является плохой идеей, потому что созданный вручную make.exe останется и потенциально может вызвать неожиданные проблемы. На самом деле это нарушает работу RubyInstaller: https://github.com/oneclick/rubyinstaller2/issues/105

Альтернативой является установка make через Chocolatey (как указано @Vasantha Ganesh K)

Другой альтернативой является установка MSYS2 из Chocolatey и использование make из C:\tools\msys64\usr\bin. Если make не устанавливается автоматически вместе с MSYS2, вам необходимо установить его вручную через pacman -S make (как указано @Thad Guidry и @Luke).

person thisismydesign    schedule 25.03.2018
comment
Я установил это с помощью Chocolatey, но в C:\tools\msys64\usr\bin ?? нет make.exe. - person Rosdi Kasim; 11.07.2018
comment
вы можете найти pacman в этой папке, после этого используйте шаг 3 @thad - person Luke; 27.11.2018

Если вы используете Windows 10, она встроена в функцию подсистемы Linux. Просто запустите командную строку Bash (нажмите клавишу Windows, затем введите bash и выберите «Bash в Ubuntu в Windows»), cd перейдите в каталог, который вы хотите создать, и введите make.

FWIW, диски Windows находятся в /mnt, например C:\ диск - это /mnt/c в Bash.

Если Bash недоступен в меню «Пуск», вот инструкции по включению этой функции Windows (только для 64-разрядной версии Windows):

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

person Stefan    schedule 10.01.2019
comment
Подсистема Linux недоступна в Windows 10 Домашняя. - person Martin Grey; 02.10.2019
comment
Я использую подсистему Windows для Linux (в частности, Ubuntu 20.04 LTS, загруженную из Microsoft Store) на моем Win10 Home версии 1809 в течение последних двух месяцев без каких-либо проблем. Говоря о make, он доступен для меня прямо из окна Терминала Windows, даже без предварительного запуска bash. Аккуратный. - person Igor Soudakevitch; 16.07.2020
comment
это не работает. оболочка мгновенно исчезает - person KansaiRobot; 12.07.2021

Загрузите make.exe с их официального сайта GnuWin32

  • В сеансе загрузки нажмите Полный пакет, кроме источников.

  • Следуйте инструкциям по установке.

  • По завершении добавьте <installation directory>/bin/ в переменную PATH.

Теперь вы сможете использовать make в cmd.

person Manu S Pillai    schedule 04.12.2018
comment
Не могли бы вы помочь мне, как установить каталог в переменную PATH. - person shomit; 18.07.2020
comment
@shomit Запустите поиск в ОС Windows (поле рядом с кнопкой Windows) по слову Environment. Когда вы увидите всплывающее окно для Edit the System Environment Variables in the Control Panel, выберите это. Свойства системы - ›Должна появиться вкладка« Дополнительно ». Найдите внизу кнопку с надписью Environment Variables. - person zipzit; 05.04.2021
comment
Это не работает. Я сделал это и получил ошибку, что программа была построена для 32-битных систем, а win10 - 64-битная. Есть марка для windows 10? - person KansaiRobot; 12.07.2021

  1. Установите Msys2 http://www.msys2.org
  2. Следуйте инструкциям по установке.
  3. Установите make с помощью $ pacman -S make gettext base-devel
  4. Добавьте C:\msys64\usr\bin\ к своему пути
person Community    schedule 09.11.2018

Другой альтернативой является то, что если вы уже установили minGW и добавили папку bin в переменную среды Path, вы можете использовать «mingw32-make» вместо «make».

Вы также можете создать символическую ссылку от «make» к «mingw32-make» или скопировать и изменить имя файла. Я бы не рекомендовал эти варианты раньше, они будут работать, пока вы не внесете изменения в minGW.

person Persike    schedule 23.07.2019
comment
Можете ли вы уточнить, что вы имеете в виду под опциями раньше? - person Jona; 10.03.2020

Могу предложить пошаговый подход.

  1. Посетите GNUwin.
  2. Загрузите программу установки
  3. Следуйте инструкциям и установите GNUWin. Обратите внимание на каталог, в который устанавливается ваше приложение. (Вам понадобится позже1)
  4. Следуйте эти инструкции и добавьте make в переменные среды. Как я уже говорил вам раньше, пришло время узнать, где было установлено ваше приложение. К вашему сведению: каталог по умолчанию - C:\Program Files (x86)\GnuWin32\.
  5. Теперь обновите PATH, включив в него каталог bin только что установленной программы. Типичный пример того, что можно добавить к пути: ...;C:\Program Files (x86)\GnuWin32\bin
person Jaguarfi    schedule 10.04.2020

Одно из решений, которое может оказаться полезным, если вы хотите использовать эмулятор командной строки cmder. Вы можете установить установщик пакетов по отдельности. Сначала мы устанавливаем по очереди в командной строке Windows, используя следующую строку:

@"%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

После установки chocolatey можно использовать команду choco для установки make. После установки вам нужно будет добавить псевдоним в /cmder/config/user_aliases.cmd. Следует добавить следующую строку:

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

После этого Make будет работать в среде cmder.

person MATTHEW SILVEUS    schedule 22.04.2020

  1. Установить npm

  2. установить узел

  3. Установить Make

    node install make up
    node install make
    
  4. Если вышеуказанные команды отображают какую-либо ошибку, установите Chocolatey (choco)

  5. Откройте cmd и скопируйте и вставьте следующую команду (команда скопирована из шоколадного URL)

    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    
person dinesh kusuma    schedule 23.09.2020