Як встановити та використовувати "make" в Windows?


126

Я дотримуюся вказівок того, чиє сховище я клонував до своєї машини. Я хочу просто: мати можливість використовувати makeкоманду як частину налаштування середовища коду. Але я використовую Windows, і шукав в Інтернеті лише пошук файлу make.exe для завантаження, make-4.1.tar.gzфайл для завантаження (я не знаю, що з ним робити далі) та речі про завантаження MinGW (для GNU; але після його встановлення я не знайшов жодної згадки про "make").

Я не хочу компілятор GNU або пов'язані з ним речі; Я хочу лише використовувати "make" в Windows. Скажіть, будь ласка, що я повинен зробити для цього.

Спасибі заздалегідь!


1
Просто встановлення makeнавряд чи вирішить вашу проблему. Багато Makefiles написані для Unix-подібних систем і вимагатимуть встановити значну кількість додаткових утиліт (включаючи підтримуваний компілятор, якщо проект включає компільований код), наприклад Cygwin, або просто перейти на платформу типу WSL, якщо ви дійсно не можете звільнити ви повністю від Windows.
тріплей

Відповіді:


158

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, і вона працює!
Hashem Elezabi

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

1
Просто за допомогою MSYS2 я не зміг користуватися mklink. MSYS2 pacmanможе встановити марку pacman -S make, яка працює неправильно . Натомість mingw32-make.exeвже був присутній у Росії msys64/mingw64/bin. Можливо, вона поставляється разом з gcc. Мене бентежить, чому це не просто називають make.exe. Я просто скопіював це make.exe.
Неоніт

2
Можливо, корисно зазначити, що Visual Studio постачає власну утиліту "make" nmake, див. Док . Це можна використовувати в командному рядку VS, але ви, звичайно, можете додати його до шляху. Однак зауважте, що функціональні можливості досить обмежені порівняно з GNU, а документація майже відсутня ...
jmon12

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

186

Виробництво GNU доступне на шоколаді.

  • Встановіть звідси шоколадний .

  • Тоді choco install make.

Тепер ви зможете використовувати Make на windows.
Я намагався використовувати його на MinGW, але він також повинен працювати на CMD.


31
Найпростіше рішення IMO станом на 2019 рік.
Мій стек переповнений

Чи є причина, що це не спрацювало б у Баші? @vasantha
user3614648

Примітка. Можливо, вам потрібно буде встановити правильний проксі за допомогоюchoco config set proxy ADDRESS:PORT
weshouman

Також є совок, якщо вам не подобається, як шоколад вимагає сеансу адміністрації повноважень: github.com/lukesampson/scoop/wiki/Chocolatey-Comppare
Джонатан

18

Прийнята відповідь - це погана ідея, оскільки створене вручну make.exeбуде триматися навколо і потенційно може викликати несподівані проблеми. Це фактично порушує RubyInstaller: https://github.com/oneclick/rubyinstaller2/isissue/105

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

Ще одна альтернатива - встановлення MSYS2 від Chocolatey та використання makeвід C:\tools\msys64\usr\bin. Якщо makeсистема MSYS2 не встановлена ​​автоматично, вам потрібно встановити її вручну pacman -S make(як вказували @Thad Guidry та @Luke).


3
Я встановив це за допомогою Chocolatey, але немає make.exe в C:\tools\msys64\usr\bin??
Росді Касім

1
ви можете знайти pacman у цій папці, після цього скористайтеся кроком 3 @thad
Лука

8

Якщо ви використовуєте Windows 10, вона вбудована в функцію підсистеми Linux. Просто запустіть підказку Bash (натисніть клавішу Windows, потім введіть bashі виберіть "Bash on 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 Home.
Мартін Грей

Я використовував підсистему Windows для Linux (зокрема, Ubuntu 20.04 LTS, завантажений з Microsoft Store) на своєму Win10 Home ver.1809 протягом останніх двох місяців без жодних проблем. Якщо говорити про марку, вона доступна мені безпосередньо з вікна терміналу Windows, навіть не запускаючи спочатку баш. Акуратний.
Ігор Судакевич


5

Завантажте make.exe з офіційного сайту GnuWin32

  • У сеансі завантаження натисніть Повний пакет, крім джерел .

  • Дотримуйтесь інструкцій із встановлення.

  • Після завершення додайте <installation directory>/bin/змінну PATH.

Тепер ви зможете використовувати make в cmd.


Не могли б ви допомогти мені, як встановити каталог на змінну PATH.
shomit

3

Інша альтернатива - якщо ви вже встановили minGW і додали папку bin до змінної середовища Path, ви можете використовувати "mingw32-make" замість "make".

Ви також можете створити символьне посилання від "make" до "mingw32-make" або скопіювати та змінити ім'я файлу. Раніше я б не рекомендував варіанти, вони працюватимуть, поки ви не внесете зміни на minGW.


Чи можете ви вказати, що ви маєте на увазі під "параметрами раніше"?
Йона

1

Я міг би запропонувати поетапний підхід.

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

0

Одне рішення, яке може бути корисним, якщо ви хочете використовувати емулятор командного рядка cmder. Ви можете встановити інсталятор пакета нарізно. Спочатку ми встановлюємо chocately у командному рядку 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

Після встановлення шоколаду команду 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.