Cách sử dụng GNU Make trên Windows?


95

Tôi đã cài đặt MinGW và MSYS, đã thêm C:\MinGW\binvào PATHnhưng tôi vẫn không thể chạy Makefile trên Windows ' cmd. Tôi muốn chạy cmd.exe và nhập vào đó chẳng hạn, make allnhưng cmd của tôi nói rằng không có lệnh như vậy.

Tôi nên làm gì? Tôi không muốn sử dụng MSYS shell, đó không phải là vấn đề. Bất kỳ ý tưởng nào về cách sử dụng GNU Make trong Windows cmd như tôi có thể làm trong Ubuntu? Tôi không quan tâm đến Cygwin.


1
Bạn sẽ phải thêm nó vào PATH dưới các biến môi trường trong cài đặt hệ thống của mình.
slugonamission 14/10/12

@slugonamission: Tôi đã làm được rồi, tôi đã viết :)
yak

Chạy make.exe thay vì make?
slugonamission 14/10/12

2
@slugonamission: Tôi đã làm được! Tôi đã thêm C:\MinGW\msys\1.0\binvào PATH và nó đã hoạt động! : D Nhưng vẫn có vấn đề, makechỉ cho tôi: pastie.org/private/ixaaqbq2xl3geyg0emnow
yak

1
Trong allmục tiêu của bạn , hello.exe cần phải nằm trên cùng một dòng allđể được coi là phụ thuộc cho mục tiêu. Nếu không, trở thành một phần của nhiệm vụ cho all.
slugonamission 14/10/12

Câu trả lời:


101

Đây là cách tôi làm cho nó hoạt động:

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

Sau đó, tôi có thể mở một dấu nhắc lệnh và nhập make:

  C:\Users\Dell>make
  make: *** No targets specified and no makefile found.  Stop.

Có nghĩa là nó đang hoạt động!


10
@Imray Tôi trường hợp nó vẫn chưa hoàn toàn rõ ràng: sản phẩm được phân phối trong tệp mingw32-make.exe. Kể từ khi thư mục c:\MinGW\binlà trên đường dẫn hệ thống, bạn có thể sử dụng mingw32-makenhư một lệnh hoặc bản sao (phiên bản an toàn hơn đổi tên) các mingw32-make.exechỉ make.exe.
Tomáš Zato - Phục hồi Monica

1
Bạn nên tránh xa việc tạo msys hoặc trộn lẫn một phần của các biến môi trường của bạn vì lý do cồng kềnh, nhưng cũng vì thư mục msys là cục bộ của chính nó. Đường dẫn trong msys sẽ cho phép bạn sử dụng make if của nó trong thùng của mingw64, tuy nhiên không nói về vấn đề này. Cũng không nói về vấn đề này, bạn nên tạo một liên kết CỨNG đến mingw32-make.exe dưới dạng make.exe, giúp cuộc sống dễ dàng hơn và không phải sao chép exe. Hãy thử:mklink /H C:\MinGW\bin\mingw32-make.exe C:\MinGW\bin\make.exe
user2262111

9

Tôi đang sử dụng GNU Make từ dự án GnuWin32, xem http://gnuwin32.sourceforge.net/ nhưng không có bất kỳ bản cập nhật nào trong một thời gian, vì vậy tôi không chắc chắn về trạng thái của dự án này.


6

Mặc dù câu hỏi này đã cũ nhưng nó vẫn được hỏi bởi nhiều người sử dụng MSYS2 .

Tôi bắt đầu sử dụng nó trong năm nay để thay thế CygWin và tôi khá hài lòng.

Để cài đặt make, hãy mở MSYS2 shell và nhập các lệnh sau:

# Update the package database and core system packages
pacman -Syu
# Close shell and open again if needed

# Update again
pacman -Su

# Install make
pacman -S make

# Test it (show version)
make -v

3

Bạn có thể thêm thư mục ứng dụng vào đường dẫn của mình từ dấu nhắc lệnh bằng cách sử dụng:

setx PATH "% PATH%; c: \ MinGW \ bin"

Lưu ý rằng bạn có thể sẽ cần mở một cửa sổ lệnh mới để cài đặt đường dẫn đã sửa đổi có hiệu lực.


2

Thay vào đó, nếu bạn chỉ muốn cài đặt make, bạn có thể sử dụng trình quản lý gói chocolatey để cài đặt gnu make bằng cách sử dụng

choco install make -y

Điều này giải quyết mọi vấn đề về đường dẫn mà bạn có thể gặp phải.


0

user1594322 đã đưa ra một câu trả lời chính xác nhưng khi tôi thử nó, tôi gặp phải vấn đề về quyền quản trị /. Tôi đã có thể sao chép 'mingw32-make.exe' và dán nó, xử lý quá mức / vượt qua các vấn đề quản trị và sau đó chỉnh sửa bản sao thành 'make.exe'. Trên VirtualBox trong khách Win7.


0

Mặc dù làm cho chính nó có sẵn dưới dạng tệp thực thi độc lập ( gnuwin32.sourceforge.netgóimake ), nhưng sử dụng nó trong môi trường phát triển thích hợp có nghĩa là sử dụng msys2 .

Git 2.24 (Q4 2019) minh họa điều đó:

Xem cam kết 4668931 , cam kết b35304b , cam kết ab7d854 , cam kết be5d88e , cam kết 5d65ad1 , cam kết 030a628 , cam kết 61d1d92 , cam kết e4347c9 , cam kết ed712ef , cam kết 5b8f9e2 , cam kết 41616ef , cam kết c097b95 (ngày 30 tháng 10 năm 2019) và cam kết dbcd970 (ngày 30 tháng 10 năm 2019) và cam kết dbcd970 của Johannes Schindelin ( dscho) .
(Được hợp nhất bởi Junio ​​C Hamano - gitster- trong cam kết 6d5291b , ngày 15 tháng 10 năm 2019)

test-tool run-command: học cách chạy (các phần của) testsuite

Người ký hợp đồng: Johannes Schindelin

Git cho Windows nhảy qua các vòng để cung cấp một môi trường phát triển cho phép xây dựng Git và chạy bộ thử nghiệm của nó.

Vì vậy, toàn bộ hệ thống MSYS2, bao gồm cả GNU make và GCC được cung cấp dưới dạng "Git cho Windows SDK".
Nó đi kèm với một mức giá: một bản tải xuống ban đầu của SDK nói trên nặng tới vài trăm megabyte và SDK giải nén chiếm ~ 2GB dung lượng đĩa.

Một môi trường phát triển nguyên bản hơn nhiều trên Windows là Visual Studio. Để giúp những người đóng góp sử dụng môi trường đó, chúng tôi đã có đích Makefile vcxprojtạo cam kết với các tệp dự án (và các tệp được tạo khác) và vs/masterchi nhánh của Git for Windows liên tục được tạo lại bằng cách sử dụng đích đó.

Ý tưởng là cho phép xây dựng Git trong Visual Studio và chạy các bài kiểm tra riêng lẻ bằng Portable Git.

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.