如何在 Windows 上使用 GNUMake?

我安装了 MinGW 和 MSYS,将 C:\MinGW\bin添加到 PATH,但我仍然不能在 Windows 的 cmd上运行 Makefile。我想运行 cmd.exe,然后输入,例如,make all,但是我的 cmd 说没有这样的命令。

我该怎么办?我不想用 MSYS 外壳,这不是重点。有什么想法如何使用 GNUMake 在 Windows cmd 作为我可以在 Ubuntu?我对 Cygwin不感兴趣。

179197 次浏览

Explanation

Inside directory C:\MinGW\bin there is an executable file mingw32-make.exe which is the program make you are trying to run. You can use the keyword mingw32-make and run the program make since you have added the needed directory to the system path, but it is not an easy to remember keyword.


Solution

Renaming the file from mingw32-make.exe to make.exe will allow you to run program make using the keyword make.

Renaming can be done:

  1. Manually by right clicking and renaming the file.
  2. By running the command copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe.

Result

Now if you type make on command prompt it should output something like:

make: *** No targets specified and no makefile found.  Stop.

Which means the program make ran.

I'm using GNU Make from the GnuWin32 project, see http://gnuwin32.sourceforge.net/ but there haven't been any updates for a while now, so I'm not sure on this project's status.

You can add the application folder to your path from a command prompt using:

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

Note that you will probably need to open a new command window for the modified path setting to go into effect.

Although this question is old, it is still asked by many who use MSYS2.

I started to use it this year to replace CygWin, and I'm getting pretty satisfied.

To install make, open the MSYS2 shell and type the following commands:

# 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

user1594322 gave a correct answer but when I tried it I ran into admin/permission problems. I was able to copy 'mingw32-make.exe' and paste it, over-ruling/by-passing admin issues and then editing the copy to 'make.exe'. On VirtualBox in a Win7 guest.

As an alternative, if you just want to install make, you can use the chocolatey package manager to install gnu make by using

choco install make -y

This deals with any path issues that you might have.

While make itself is available as a standalone executable (ABC0 package make), using it in a proper development environment means using msys2.

Git 2.24 (Q4 2019) illustrates that:

See commit 4668931, commit b35304b, commit ab7d854, commit be5d88e, commit 5d65ad1, commit 030a628, commit 61d1d92, commit e4347c9, commit ed712ef, commit 46689310, commit 46689311, commit 46689312 (04 Oct 2019), and commit 46689313 (30 Sep 2019) by commit 46689314.
(Merged by Junio C Hamano -- gitster -- in commit 6d5291b, 15 Oct 2019)

test-tool run-command: learn to run (parts of) the testsuite

Signed-off-by: Johannes Schindelin

Git for Windows jumps through hoops to provide a development environment that allows to build Git and to run its test suite.

To that end, an entire MSYS2 system, including GNU make and GCC is offered as "the Git for Windows SDK".
It does come at a price: an initial download of said SDK weighs in with several hundreds of megabytes, and the unpacked SDK occupies ~2GB of disk space.

A much more native development environment on Windows is Visual Studio. To help contributors use that environment, we already have a Makefile target vcxproj that generates a commit with project files (and other generated files), and Git for Windows' vs/master branch is continuously re-generated using that target.

The idea is to allow building Git in Visual Studio, and to run individual tests using a Portable Git.