如何在Windows中安装和使用"make"?

Has*_*abi 67 makefile gnu-make windows-8 windows-10

我正在按照我克隆到我的机器的某个人的指示.我想要的很简单:能够在make设置代码环境时使用该命令.但是我正在使用Windows,我在线搜索只找到要下载的make.exe文件,要下载的make-4.1.tar.gz文件(我不知道下一步该做什么),以及有关下载MinGW(GNU;但是安装后我没有发现任何提及"制造").

我不想要GNU编译器或相关的东西; 我只想在Windows中使用"make".请告诉我应该怎样做才能实现这一目标.

提前致谢!

Vas*_*h K 117

GNU make适用于巧克力.

  • 这里安装巧克力.

  • 然后,choco install make.

现在,您将能够在Windows上使用Make.
我尝试在MinGW上使用它,但它也适用于CMD.

  • 最简单的解决方案IMO截至2019年. (25认同)
  • 完美的工作,这应该是公认的答案。 (15认同)
  • 是的,简单如卓悦 (4认同)
  • 看来巧克力不应该用于商业用途https://chocolatey.org/terms? (3认同)

Mos*_*Geo 84

winget install GnuWin32.Make在Windows 10或11上,您可以在命令行或powershell中运行命令来快速安装。比你可以使用命令make

ps:您可能需要添加C:\Program Files (x86)\GnuWin32\bin到 Windows 环境变量PATH才能快速访问该命令(感谢JobaDiniz本说明中的 )。

不再需要安装 choco 了。

  • 这几乎有效。您还需要将“C:\Program Files (x86)\GnuWin32\bin”添加到 Windows PATH 环境变量中。 (35认同)
  • make 是 choco 上最新的。choco `make --version` - `GNU Make 4.4.1`,winget `make --version` - `GNU Make 3.81` (4认同)
  • 可执行文件也称为 make.exe 而不是 cmake.exe,因此命令也是 `make` (3认同)
  • 这个答案应该在最上面。 (2认同)

Edu*_*eda 83

make是一个GNU命令,因此在Windows上获取它的唯一方法是安装类似GNUWin32提供的Windows版本.或者您可以安装MinGW然后执行:

copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe
Run Code Online (Sandbox Code Playgroud)

或在PATH中创建指向实际可执行文件的链接.在这种情况下,如果您更新MinGW,则不会删除该链接:

mklink c:\bin\make.exe C:\MinGW\bin\mingw32-make.exe
Run Code Online (Sandbox Code Playgroud)

因此,您可以在Windows控制台中执行make.exe命令.

  • 也许值得一提的是,Visual Studio 附带了自己的“make”实用程序“nmake”,请参阅[doc](https://docs.microsoft.com/en-us/cpp/build/reference/nmake-reference?view = vs-2019)。它可以从 VS 命令提示符使用,但您当然可以将其添加到路径中。但请注意,与 GNU make 相比,其功能相当有限,并且文档几乎不存在...... (3认同)
  • 一个更简单的方法是创建一个符号链接:`mklink C:\ bin \ make.exe C:\ MinGW \ bin \ mingw32-make.exe`。因此,将来如果您确实升级了mingw,该链接将保持不变。 (2认同)
  • 仅使用 MSYS2 我无法使用“mklink”。MSYS2 的 `pacman` 可以安装 make `pacman -S make`,但它**无法正常工作**。相反,“mingw32-make.exe”已经存在于“msys64/mingw64/bin”中。也许它随“gcc”一起提供。不过,我很困惑为什么它不只是被称为“make.exe”。我只是将其复制到“make.exe”。 (2认同)
  • @notacorn 有点,但你可以从它们两个访问你的“Windows”文件夹。Git bash 使用 /c,WSL 使用 /mnt/c。 (2认同)
  • “Make 是一个 GNU 命令”……有点,但不完全是。几十年前最初的 Make 是一个 Unix 工具。然后GNU克隆了它。然后 GNU 对其进行了广泛的增强,以至于他们不得不放弃向后兼容性。GNU 版本好得多,以至于很少有人再使用原始的 Unix 版本,并且它基本上已经消失了。许多 Linux 系统都包含原始 Make(称为“make”)和 GNU 版本 Make(称为“gmake”)。 (2认同)

Ste*_*fan 17

如果您使用的是 Windows 10,则它内置于 Linux 子系统功能中。只需启动 Bash 提示符(按 Windows 键,然后键入bash并选择“Bash on Ubuntu on Windows”),cd到您要创建的目录并键入make.

FWIW,Windows 驱动器位于 中/mnt,例如C:\驱动器/mnt/c位于 Bash 中。

如果您的开始菜单中没有 Bash,以下是打开该 Windows 功能(仅限 64 位 Windows)的说明:

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

  • Linux 子系统在 Windows 10 家庭版上不可用。 (5认同)
  • 过去两个月我一直在我的 Win10 Home ver.1809 上使用 Windows Subsystem for Linux(具体来说,Ubuntu 20.04 LTS,从 Microsoft Store 下载),没有任何问题。说到 make,我可以直接从 Windows 终端窗口内使用它,甚至无需先启动 bash。整洁的。 (3认同)
  • 这并没有回答问题,因为它没有在*Windows*中安装它。这里使用的 make 将成为构建 Linux 二进制文件(而不是 Windows 二进制文件)的构建链的一部分。 (3认同)

thi*_*ign 14

一般来说,接受的答案是一个坏主意,因为手动创建的make.exe会留下来并可能导致意外问题.它实际上打破了RubyInstaller:https://github.com/oneclick/rubyinstaller2/issues/105

另一种方法是通过Chocolatey 安装make(正如@Vasantha Ganesh K所指出的那样)

另一种替代方法是安装MSYS2从巧克力味,并使用makeC:\tools\msys64\usr\bin.如果make未自动安装MSYS2,则需要手动安装pacman -S make(如@Thad Guidry和@Luke所指出的).

  • 我使用Chocolatey安装了这个,但在`C:\ tools\msys64\usr\bin`中没有make.exe? (3认同)
  • 你可以在该文件夹中找到 pacman,然后使用@thad 的步骤 3 (2认同)

vja*_*lle 10

除了 GNU make 之外,您很可能还需要许多 coreutils。touch、rm、cp、sed、test、tee、echo 等。构建系统可能需要 bash 功能,如果没有别的原因,从进程 ID ($$$$) 创建临时文件名是很流行的。如果没有 bash,那是行不通的。您可以使用流行的 Windows POSIX 模拟器获得一切:

  • Cygwin ( http://www.cygwin.org/ ) 可能是最受欢迎且与 POSIX 最兼容的一种。Windows 路径有一些困难并且速度很慢。
  • GNUWin ( http://gnuwin32.sourceforge.net/ ) 它很好而且很快,但现在被放弃了。没有提供 bash,但可以从其他包中使用它。
  • ezwinports ( https://sourceforge.net/projects/ezwinports ) 我目前最喜欢的。速度快,效果好。它没有提供 bash,这对于某些构建系统来说可能是个问题。可以使用 ezwinports 中的 make 和 Cygwin 或 MSYS2 中的 bash 作为解决方法。
  • MSYS 1.19被放弃。运行良好,但具有非常旧的品牌(3.86 左右)
  • MSYS2 ( https://www.msys2.org/ ) 运行良好,是继 ezwinports 之后第二快的解决方案。质量好,包管理器(pacman),所有工具都可用。我推荐这个。
  • MinGW被抛弃了?通常 MSYS 1.19 与 MinGW 软件包捆绑在一起,其中包含旧的 make.exe。使用包中的 mingw32-make.exe,它是最新的。

请注意,您可能无法选择您的环境。如果构建系统是为 Cygwin 创建的,则在不进行修改的情况下,它可能无法在其他环境中工作(make 语言相同,但转义、路径转换工作方式不同、$(realpath) 在 Windows 路径上失败、DOS bat 文件启动为shell 脚本和许多类似的问题)。如果来自 Linux,您可能需要使用真正的 Linux 或 WSL。如果编译器在 Linux 上运行,则没有必要为 Windows 安装 make,因为您必须在 Linux 上同时运行 make 和编译器。同样,如果编译器在 Windows 上运行,WSL 将无济于事,因为在该环境中您只能执行 Linux 工具,而不能执行 Windows 可执行文件。有点棘手!


小智 9

您还可以安装scoop,然后运行:

scoop install make
Run Code Online (Sandbox Code Playgroud)


Man*_*lai 8

从他们的官方网站GnuWin32下载make.exe

  • 在下载会话中,单击 Complete package, except sources

  • 按照安装说明进行操作。

  • 完成后,将 加入<installation directory>/bin/到 PATH 变量中。

现在您将能够在 cmd 中使用 make。


Tha*_*dry 7

  1. 安装Msys2 http://www.msys2.org
  2. 按照安装说明操作
  3. 安装make with$ pacman -S make gettext base-devel
  4. 添加C:\msys64\usr\bin\到您的路径


小智 6

我可以建议一个循序渐进的方法。

  1. 访问GNUwin
  2. 下载安装程序
  3. 按照说明安装 GNUWin。您应该注意应用程序的安装目录。(稍后您会需要它1)
  4. 按照这些说明操作并将 make 添加到您的环境变量中。正如我之前告诉您的,现在是时候知道您的应用程序安装在哪里了。仅供参考:默认目录是C:\Program Files (x86)\GnuWin32\.
  5. 现在,更新 PATH 以包含新安装程序的 bin 目录。可以添加到路径中的一个典型示例是:...;C:\Program Files (x86)\GnuWin32\bin


Gun*_*ter 5

我曾经遇到过同样的问题。但我很惊讶没有在这里找到一个特定的解决方案。

从 GnuWin32 或 via 安装winget都是不错且简单的选择。但我在那里只找到了 make 3.8.1 。这个版本缺少非常重要的选项-O,该选项在编译多线程时正确处理输出。

choco目前似乎提供 make 4.3。所以人们可以期待那里的最新版本。

但也可以选择自编译。如果您必须安装make用于编译的 ,这应该是一个有效的选项。

  1. 前往https://www.gnu.org/software/make/并下载您喜欢的版本
  2. 解压 tar.gz 文件(使用 7zip 并解压文件两次以检索实际内容)
  3. 导航到创建的目录
  4. 在该目录中打开命令提示符
  5. runbuild_w32.bat gcc这将开始使用 gcc 编译器进行编译,您需要提前安装该编译器。当没有任何选项运行时,build_w32.bat他们尝试使用 MSVC 编译器。旁注:我发现令人惊讶的是,gnu 不使用 gcc 作为默认值,而是使用 MSVC :-)
  6. 忽略编译期间创建的警告。结果应该还是没问题的
  7. gnumake.exe从目录 GccRel 中检索最新内容(使用 gcc 编译时)
  8. 将此文件放在您喜欢的位置并重命名为make.exe
  9. 将位置添加到系统变量%PATH%

正如其他人所指出的:如果您还通过其他程序安装了各种 make 版本,则此手动安装可能会导致冲突。