Cách cài đặt và sử dụng “make” trong Windows?


127

Tôi đang làm theo hướng dẫn của người có kho lưu trữ mà tôi đã sao chép vào máy của mình. Điều tôi muốn rất đơn giản: có thể sử dụng makelệnh như một phần của việc thiết lập môi trường mã. Nhưng tôi đang sử dụng Windows và tôi đã tìm kiếm trên mạng chỉ để tìm tệp make.exe để tải xuống, make-4.1.tar.gztệp để tải xuống (tôi không biết phải làm gì với nó tiếp theo) và những thứ về việc tải xuống MinGW (cho GNU; nhưng sau khi cài đặt nó, tôi không tìm thấy bất kỳ đề cập nào về "make").

Tôi không muốn trình biên dịch GNU hoặc những thứ liên quan; Tôi chỉ muốn sử dụng "make" trong Windows. Hãy cho tôi biết tôi nên làm gì để thực hiện được điều đó.

Cảm ơn trước!


1
Chỉ cài đặt makekhông có khả năng giải quyết vấn đề của bạn. Nhiều Makefiles được viết cho các hệ thống giống Unix và sẽ yêu cầu bạn cài đặt một lượng đáng kể các tiện ích bổ sung (bao gồm một trình biên dịch được hỗ trợ nếu dự án liên quan đến mã đã biên dịch) chẳng hạn như Cygwin, hoặc chỉ cần chuyển sang một nền tảng như WSL nếu bạn thực sự không thể giải phóng. từ Windows hoàn toàn.
tripleee

Câu trả lời:


159

makelà một lệnh GNU nên cách duy nhất bạn có thể lấy nó trên Windows là cài đặt một phiên bản Windows như phiên bản do GNUWin32 cung cấp . Hoặc bạn có thể cài đặt MinGW và sau đó thực hiện:

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

hoặc tạo một liên kết đến tệp thực thi thực tế, trong PATH của bạn. Trong trường hợp này, nếu bạn cập nhật MinGW, liên kết sẽ không bị xóa:

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

Tùy chọn khác là sử dụng Chocolatey . Trước tiên, bạn cần cài đặt trình quản lý gói này. Sau khi cài đặt, bạn cần cài đặt simlpy make:

choco install make

Tùy chọn cuối cùng là cài đặt một hệ thống con Windows cho Linux (WSL) , vì vậy bạn sẽ có một bản phân phối Linux của sự lựa chọn của bạn nhúng trong Windows 10, nơi bạn sẽ có thể cài đặt make, gccvà tất cả các công cụ bạn cần cho các chương trình xây dựng C.


1
Cảm ơn! Tôi không biết make là một lệnh GNU. Tôi đã kiểm tra đường dẫn bạn cung cấp và tìm thấy make.exe nhưng trong một đường dẫn tương tự (C: \ MinGW \ msys \ 1.0 \ bin \ make.exe). Tôi đã thêm điều này vào biến PATH và nó hoạt động!
Hashem Elezabi

2
Một cách đơn giản hơn là tạo ra một liên kết tượng trưng: mklink C:\bin\make.exe C:\MinGW\bin\mingw32-make.exe. Vì vậy, trong tương lai nếu bạn nâng cấp mingw của mình, liên kết sẽ còn nguyên vẹn.
kumarharsh

1
Chỉ sử dụng MSYS2 tôi đã không thể sử dụng mklink. MSYS2 của pacmanthể cài đặt một làm pacman -S make, đó là không làm việc một cách chính xác . Thay vào đó, mingw32-make.exeđã có mặt trong msys64/mingw64/bin. Có lẽ nó được vận chuyển với gcc. Tuy nhiên, tôi bối rối tại sao nó không chỉ được gọi make.exe. Tôi chỉ cần sao chép nó vào make.exe.
Neonit

2
Có thể hữu ích khi đề cập rằng Visual Studio cung cấp tiện ích 'tạo' của riêng nó nmake, hãy xem tài liệu . Nó có thể sử dụng được từ dấu nhắc lệnh VS, nhưng tất nhiên bạn có thể thêm nó vào đường dẫn. Tuy nhiên, lưu ý rằng các chức năng khá hạn chế so với GNU make và tài liệu gần như không tồn tại ...
jmon12

1
@notacorn kiểu như vậy, nhưng bạn có thể truy cập các thư mục "Windows" của mình từ cả hai. Git bash với / c, WSL với / mnt / c.
Eduardo Yáñez Parareda

186

GNU làm có sẵn trên sô cô la.

  • Cài đặt chocolatey từ đây .

  • Sau đó choco install make,.

Bây giờ bạn sẽ có thể sử dụng Make trên windows.
Tôi đã thử sử dụng nó trên MinGW, nhưng nó cũng sẽ hoạt động trên CMD.


31
Giải pháp đơn giản nhất IMO tính đến năm 2019.
My Stack Overfloweth.

Có lý do gì mà điều này không hoạt động trong Bash? @vasantha
dùng3614648

Lưu ý: Người ta có thể cần đặt đúng proxy bằng cách sử dụngchoco config set proxy ADDRESS:PORT
weshouman

Cũng có tin sốt dẻo nếu bạn không thích cách sô cô la yêu cầu phiên quyền hạn quản trị viên: github.com/lukesampson/scoop/wiki/Chocolatey-Comparison
Jonathan Landrum

18

Câu trả lời được chấp nhận nói chung là một ý tưởng tồi bởi vì câu trả lời được tạo thủ công make.exesẽ dính xung quanh và có thể gây ra sự cố không mong muốn. Nó thực sự phá vỡ RubyInstaller: https://github.com/oneclick/rubyinstaller2/issues/105

Một giải pháp thay thế là cài đặt make qua Chocolatey (như được chỉ ra bởi @Vasantha Ganesh K)

Một giải pháp thay thế khác là cài đặt MSYS2 từ Chocolatey và sử dụng maketừ C:\tools\msys64\usr\bin. Nếu makekhông được cài đặt tự động với MSYS2, bạn cần phải cài đặt nó theo cách thủ công thông qua pacman -S make(như được chỉ ra bởi @Thad Guidry và @Luke).


3
Tôi đã cài đặt điều này bằng Chocolatey nhưng không có make.exe trong C:\tools\msys64\usr\bin??
Rosdi Kasim

1
bạn có thể tìm thấy pacman trong thư mục đó, sau đó sử dụng bước 3 của @thad
Luke

8

Nếu bạn đang sử dụng Windows 10, nó được tích hợp vào tính năng hệ thống con của Linux. Chỉ cần khởi chạy lời nhắc Bash (nhấn phím Windows, sau đó nhập bashvà chọn "Bash trên Ubuntu trên Windows"), cdđến thư mục bạn muốn tạo và nhậpmake .

FWIW, ổ đĩa Windows được tìm thấy trong /mnt, ví dụ C:\ổ đĩa nằm /mnt/ctrong Bash.

Nếu Bash không khả dụng từ menu bắt đầu của bạn, đây là hướng dẫn để bật tính năng Windows đó (chỉ dành cho Windows 64-bit):

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


4
Hệ thống con Linux không khả dụng trên Windows 10 Home.
Martin Grey

Tôi đã sử dụng Hệ thống con của Windows dành cho Linux (cụ thể là Ubuntu 20.04 LTS, được tải xuống từ Microsoft Store) trên Win10 Home ver.1809 của tôi trong hai tháng qua mà không gặp bất kỳ sự cố nào. Nói về make, nó có sẵn cho tôi trực tiếp từ bên trong cửa sổ Windows Terminal mà không cần khởi chạy bash trước. Khéo léo.
Igor Soudakevitch


5

Tải xuống make.exe từ trang web chính thức của họ GnuWin32

  • Trong phiên Tải xuống, nhấp vào Hoàn thành gói, ngoại trừ nguồn .

  • Làm theo hướng dẫn cài đặt.

  • Sau khi hoàn tất, hãy thêm <installation directory>/bin/vào biến PATH.

Bây giờ bạn sẽ có thể sử dụng make trong cmd.


Bạn vui lòng giúp tôi cách đặt thư mục thành biến PATH.
shomit

3

Một giải pháp thay thế khác là nếu bạn đã cài đặt minGW và thêm vào thư mục bin biến môi trường Path, bạn có thể sử dụng "mingw32-make" thay vì "make".

Bạn cũng có thể tạo liên kết biểu tượng từ "make" thành "mingw32-make" hoặc sao chép và thay đổi tên của tệp. Tôi sẽ không đề xuất các tùy chọn trước đây, chúng sẽ hoạt động cho đến khi bạn thực hiện các thay đổi trên minGW.


Bạn có thể chỉ rõ ý bạn là "các tùy chọn trước đây" được không?
Jona

1

Tôi có thể đề xuất một cách tiếp cận từng bước.

  1. Ghé thăm GNUwin
  2. Tải xuống chương trình cài đặt
  3. Làm theo hướng dẫn và cài đặt GNUWin. Bạn nên chú ý đến thư mục mà ứng dụng của bạn đang được cài đặt. (Bạn sẽ cần nó sau này1)
  4. Làm theo các hướng dẫn sau và thêm tên vào các biến môi trường của bạn. Như tôi đã nói với bạn trước đây, bây giờ là lúc để biết ứng dụng của bạn đã được cài đặt ở đâu. FYI: Thư mục mặc định làC:\Program Files (x86)\GnuWin32\ .
  5. Bây giờ, hãy cập nhật PATH để bao gồm thư mục bin của chương trình mới được cài đặt. Ví dụ điển hình về những gì người ta có thể thêm vào đường dẫn là:...;C:\Program Files (x86)\GnuWin32\bin

0

Một giải pháp có thể hữu ích nếu bạn muốn sử dụng cmder giả lập dòng lệnh. Bạn có thể cài đặt trình cài đặt gói một cách riêng biệt. Đầu tiên, chúng tôi cài đặt chocately trong dấu nhắc lệnh của windows bằng dòng sau:

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

Sau khi cài đặt chocolatey, lệnh choco có thể được sử dụng để cài đặt make. Sau khi cài đặt, bạn sẽ cần thêm bí danh vào /cmder/config/user_aliases.cmd. Dòng sau sẽ được thêm vào:

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

Make sau đó sẽ hoạt động trong môi trường cmder.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.