Jak zainstalować i używać „make” w systemie Windows?

127

Postępuję zgodnie z instrukcjami osoby, której repozytorium sklonowałem na mój komputer. To, czego chcę, jest proste: móc użyć makepolecenia w ramach konfigurowania środowiska kodu. Ale używam systemu Windows i szukałem w Internecie tylko po to, aby znaleźć plik make.exe do pobrania, make-4.1.tar.gzplik do pobrania (nie wiem, co z nim dalej zrobić) i rzeczy dotyczące pobierania MinGW (dla GNU; ale po zainstalowaniu nie znalazłem żadnej wzmianki o "make").

Nie chcę kompilatora GNU ani podobnych rzeczy; Chcę używać tylko funkcji „make” w systemie Windows. Proszę, powiedz mi, co mam zrobić, żeby to osiągnąć.

Z góry dziękuję!

Hashem Elezabi
źródło
1
Sama instalacja makeraczej nie rozwiąże problemu. Wiele plików Makefile jest napisanych dla systemów uniksopodobnych i będzie wymagać zainstalowania znacznej ilości dodatkowych narzędzi (w tym obsługiwanego kompilatora, jeśli projekt obejmuje skompilowany kod), takich jak Cygwin lub po prostu przełączenie na platformę taką jak WSL, jeśli naprawdę nie możesz zwolnić całkowicie z systemu Windows.
tripleee

Odpowiedzi:

159

makejest poleceniem GNU, więc jedynym sposobem, w jaki można go uzyskać w systemie Windows, jest zainstalowanie wersji systemu Windows, takiej jak ta dostarczona przez GNUWin32 . Lub możesz zainstalować MinGW, a następnie:

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

lub utwórz łącze do rzeczywistego pliku wykonywalnego w swojej PATH. W takim przypadku, jeśli zaktualizujesz MinGW, link nie zostanie usunięty:

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

Inną opcją jest użycie Chocolatey . Najpierw musisz zainstalować tego menedżera pakietów. Po zainstalowaniu po prostu musisz zainstalować make:

choco install make

Ostatnią opcją jest zainstalowanie podsystemu Windows dla systemu Linux (WSL) , dzięki czemu będziesz mieć wybraną dystrybucję Linuksa osadzoną w systemie Windows 10, w którym będziesz mógł zainstalować make, gccoraz wszystkie narzędzia potrzebne do tworzenia programów C.

Eduardo Yáñez Parareda
źródło
1
Dzięki! Nie wiedziałem, że make to polecenie GNU. Sprawdziłem ścieżkę, którą podałeś i znalazłem make.exe, ale w podobnej ścieżce (C: \ MinGW \ msys \ 1.0 \ bin \ make.exe). Dodałem to do zmiennej PATH i działa!
Hashem Elezabi
2
Prostszym sposobem byłoby utworzenie dowiązania: mklink C:\bin\make.exe C:\MinGW\bin\mingw32-make.exe. Więc w przyszłości, jeśli zaktualizujesz swoje mingw, łącze pozostanie nienaruszone.
kumarharsh
1
Po prostu używając MSYS2 nie byłem w stanie użyć mklink. MSYS2 pacmanmoże zainstalować markę pacman -S make, która nie działa poprawnie . Zamiast tego mingw32-make.exebył już obecny w msys64/mingw64/bin. Może został dostarczony z gcc. make.exeJednak jestem zdezorientowany, dlaczego nie jest to po prostu wywołane . Po prostu skopiowałem to do make.exe.
Neonit
2
Może warto wspomnieć, że Visual Studio dostarcza własne narzędzie do tworzenia nmake, zobacz dokumentację . Można go używać z wiersza poleceń VS, ale możesz oczywiście dodać go do ścieżki. Zwróć jednak uwagę, że funkcjonalności są dość ograniczone w porównaniu z
marką
1
W pewnym sensie @notacorn, ale możesz uzyskać dostęp do swoich folderów „Windows” z obu z nich. Git bash z / c, WSL z / mnt / c.
Eduardo Yáñez Parareda
186

Marka GNU jest dostępna w wersji Chocolatey.

  • Zainstaluj czekoladę stąd .

  • Następnie choco install make.

Teraz będziesz mógł używać aplikacji Make w systemie Windows.
Próbowałem go używać na MinGW, ale powinno działać również na CMD.

Vasantha Ganesh K.
źródło
31
Najprostsze rozwiązanie IMO od 2019 r.
My Stack Overfloweth
Czy jest jakiś powód, dla którego to nie zadziała w Bash? @vasantha
user3614648
Uwaga: może być konieczne ustawienie prawidłowego serwera proxy za pomocąchoco config set proxy ADDRESS:PORT
weshouman
Jest też miarka, jeśli nie podoba ci się, jak czekolada wymaga sesji administratora PowerShell: github.com/lukesampson/scoop/wiki/Chocolatey-Comparison
Jonathan Landrum
18

Przyjęta odpowiedź jest ogólnie złym pomysłem, ponieważ ręcznie utworzona make.exebędzie się trzymać i może potencjalnie powodować nieoczekiwane problemy. W rzeczywistości psuje RubyInstaller: https://github.com/oneclick/rubyinstaller2/issues/105

Alternatywą jest instalacja make via Chocolatey (jak wskazał @Vasantha Ganesh K)

Inną alternatywą jest zainstalowanie MSYS2 z Chocolatey i użycie makez C:\tools\msys64\usr\bin. Jeśli makenie jest instalowany automatycznie z MSYS2, musisz zainstalować go ręcznie przez pacman -S make(jak wskazali @Thad Guidry i @Luke).

to mój projekt
źródło
3
Zainstalowałem to za pomocą Chocolatey, ale nie ma w nim make.exe C:\tools\msys64\usr\bin?
Rosdi Kasim,
1
Możesz znaleźć pacmana w tym folderze, a następnie skorzystaj z kroku 3 @thad
Luke
8

Jeśli używasz systemu Windows 10, jest on wbudowany w funkcję podsystemu Linux. Po prostu uruchom monit Bash (naciśnij klawisz Windows, a następnie wpisz bashi wybierz „Bash w systemie Ubuntu w systemie Windows”), cdaby przejść do katalogu, który chcesz utworzyć i wpisać make.

FWIW, dyski Windows znajdują się w /mnt, np. C:\Dysk jest /mnt/cw Bash.

Jeśli Bash nie jest dostępny w menu Start, oto instrukcje dotyczące włączania tej funkcji systemu Windows (tylko 64-bitowy system Windows):

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

Stefan
źródło
4
Podsystem Linux jest niedostępny w systemie Windows 10 Home.
Martin Grey
Używam podsystemu Windows dla systemu Linux (w szczególności Ubuntu 20.04 LTS, pobranego ze sklepu Microsoft Store) na moim Win10 Home w wersji 1809 od dwóch miesięcy bez żadnego problemu. Mówiąc o make, jest dostępny dla mnie bezpośrednio z okna terminala Windows, nawet bez uruchamiania basha. Schludny.
Igor Soudakevitch
5

Pobierz make.exe z ich oficjalnej strony GnuWin32

  • W sesji pobierania kliknij opcję Kompletny pakiet, z wyjątkiem źródeł .

  • Postępuj zgodnie z instrukcjami instalacji.

  • Po zakończeniu dodaj <installation directory>/bin/do zmiennej PATH.

Teraz będziesz mógł używać make w cmd.

Manu S Pillai
źródło
Czy mógłbyś mi pomóc, jak ustawić katalog na zmienną PATH.
shomit
3

Inną alternatywą jest to, że jeśli już zainstalowałeś minGW i dodałeś do folderu bin zmienną środowiskową to Path, możesz użyć "mingw32-make" zamiast "make".

Możesz także utworzyć dowiązanie symboliczne od „make” do „mingw32-make” lub skopiować i zmienić nazwę pliku. Nie polecałbym wcześniej opcji, będą działać, dopóki nie dokonasz zmian w minGW.

Persike
źródło
Czy możesz określić, co rozumiesz przez „opcje przed”?
Jona
1

Mógłbym zaproponować podejście krok po kroku.

  1. Odwiedź GNUwin
  2. Pobierz program instalacyjny
  3. Postępuj zgodnie z instrukcjami i zainstaluj GNUWin. Należy zwrócić uwagę na katalog, w którym jest instalowana aplikacja. (Będziesz go potrzebować później1)
  4. Postępuj zgodnie z tymi instrukcjami i dodaj make do zmiennych środowiskowych. Jak już mówiłem, teraz nadszedł czas, aby dowiedzieć się, gdzie została zainstalowana Twoja aplikacja. FYI: domyślny katalog to C:\Program Files (x86)\GnuWin32\.
  5. Teraz zaktualizuj ścieżkę PATH, aby zawierała katalog bin nowo zainstalowanego programu. Typowym przykładem tego, co można dodać do ścieżki, jest:...;C:\Program Files (x86)\GnuWin32\bin
Jaguarfi
źródło
0

Jedno rozwiązanie, które może być pomocne, jeśli chcesz użyć cmder emulatora wiersza poleceń. Możesz zainstalować instalator pakietów w sposób czekoladowy. Najpierw instalujemy czekoladowo w wierszu poleceń Windows, używając następującego wiersza:

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

Po zainstalowaniu chocolatey można użyć polecenia choco do zainstalowania make. Po zainstalowaniu będziesz musiał dodać alias do /cmder/config/user_aliases.cmd. Należy dodać następujący wiersz:

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

Make będzie wtedy działać w środowisku cmder.

MATTHEW SILVEUS
źródło