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


127

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

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

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


1
Простая установка makeвряд ли решит вашу проблему. Многие Makefile написаны для Unix-подобных систем и потребуют от вас установки значительного количества дополнительных утилит (включая поддерживаемый компилятор, если проект включает в себя скомпилированный код), таких как Cygwin, или просто переключение на платформу, такую ​​как WSL, если вы действительно не можете освободить себя из Windows целиком.
Tripleee

Ответы:


160

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

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

или создайте ссылку на фактический исполняемый файл в своем PATH. В этом случае при обновлении MinGW ссылка не удаляется:

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

Другой вариант - использовать Chocolatey . Сначала вам нужно установить этот менеджер пакетов. После установки вам просто необходимо установить make:

choco install make

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


1
Спасибо! Я не знал, что make - это команда GNU. Я проверил указанный вами путь и нашел make.exe, но по аналогичному пути (C: \ MinGW \ msys \ 1.0 \ bin \ make.exe). Я добавил это в переменную PATH, и она работает!
Хашем Елезаби,

2
Более простой способ бы создать символическую ссылку: mklink C:\bin\make.exe C:\MinGW\bin\mingw32-make.exe. Так что в будущем, если вы обновите свой mingw, ссылка останется неизменной.
kumarharsh

1
Просто используя MSYS2, я не мог использовать mklink. MSYS2 pacmanможет установить make pacman -S make, которая работает некорректно . Вместо этого mingw32-make.exeуже присутствовал в msys64/mingw64/bin. Может быть, он поставляется с gcc. Я не понимаю, почему он просто не называется make.exe. Я просто скопировал это в make.exe.
Neonit

2
Может быть полезно упомянуть, что Visual Studio поставляет свою собственную утилиту make, nmakeсм. Doc . Его можно использовать из командной строки VS, но вы, конечно, можете добавить его в путь. Однако обратите внимание, что функциональные возможности довольно ограничены по сравнению с GNU make, а документация практически отсутствует ...
jmon12,

1
@notacorn вроде как, но вы можете получить доступ к своим папкам "Windows" из них обоих. Git bash с / c, WSL с / mnt / c.
Эдуардо Яньес Парареда,

189

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

  • Установите шоколадный отсюда .

  • Тогда choco install make.

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


31
Самое простое решение IMO по состоянию на 2019 год.
My Stack Overfloweth

Примечание: возможно, потребуется установить правильный прокси с помощьюchoco config set proxy ADDRESS:PORT
weshouman

Также есть совок, если вам не нравится, как chocolaty требует сеанса административной оболочки PowerShell: github.com/lukesampson/scoop/wiki/Chocolatey-Comparison
Джонатан Ландрам

Это должен быть принятый ответ.
Иван Скалаух

18

Принятый ответ в целом является плохой идеей, потому что созданный вручную 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).


3
Я установил это с помощью Chocolatey, но в C:\tools\msys64\usr\bin??
Rosdi Kasim

1
вы можете найти pacman в этой папке, после этого используйте шаг 3 из @thad
Люк

8

Если вы используете 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


4
Подсистема Linux недоступна в Windows 10 Домашняя.
Мартин Грей

Я использую подсистему Windows для Linux (в частности, Ubuntu 20.04 LTS, загруженную из Microsoft Store) на моем Win10 Home версии 1809 в течение последних двух месяцев без каких-либо проблем. Говоря о make, он доступен мне прямо из окна Терминала Windows, даже не запуская предварительно bash. Аккуратно.
Игорь Судакевич


6

Скачайте make.exe с их официального сайта GnuWin32

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

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

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

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


Не могли бы вы помочь мне, как установить каталог в переменную PATH.
шомит

3

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

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


Можете ли вы уточнить, что вы подразумеваете под «вариантами до»?
Йона

1

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

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

0

Одно из решений, которое может оказаться полезным, если вы хотите использовать эмулятор командной строки 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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.