如何安装和使用“制作”;在Windows ?

我正在遵循某人的指示,我将其存储库克隆到我的机器上。我想使用make命令作为设置代码环境的一部分,但我使用的是Windows。我在网上搜索,但我只能找到一个make.exe文件,一个make-4.1.tar.gz文件(我不知道接下来该怎么处理它)和如何下载MinGW的说明(适用于GNU;但安装后,我没有发现任何提及&;make")。

在没有GNU编译器或相关包的情况下,如何在Windows中使用make ?

684304 次浏览

make是一个GNU命令,所以在Windows上获得它的唯一方法是安装一个类似GNUWin32提供的Windows版本。不管怎样,有几个选项可以得到它:

  1. 最简单的选择是使用巧克力色。首先,您需要安装这个包管理器。一旦安装,你只需要安装make(你可能需要在一个提升的/管理命令提示符中运行它):

    choco install make
    
  2. 另一个推荐的选项是安装Windows Linux子系统(WSL/WSL2),这样你就可以在Windows 10中嵌入你所选择的Linux发行版,在那里你可以安装make, __abc1和构建C程序所需的所有工具。

  3. 对于较旧的Windows版本(MS Windows 2000 / XP / 2003 / Vista / 2008 / 7 with msvcrt.dll),您可以使用GnuWin32

一个过时的替代方法是MinGw,但该项目似乎被放弃了,所以最好是使用以前的选择之一。

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

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

另一种替代方法是从Chocolatey安装MSYS2并从C:\tools\msys64\usr\bin使用make。如果make没有自动安装在MSYS2中,你需要通过pacman -S make手动安装它(正如@Thad Guidry和@Luke指出的那样)。

  1. 安装Msys2 http://www.msys2.org
  2. 遵循安装说明
  3. 安装使$ pacman -S make gettext base-devel
  4. C:\msys64\usr\bin\添加到路径中

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

  • 在“下载”中单击 完整的包,除了源.

    .
  • 按照安装说明安装。

  • 一旦完成,将<installation directory>/bin/添加到PATH变量中。

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

GNU make可用于巧克力。

  • 安装巧克力from here

  • 然后,choco install make

现在您将能够在windows上使用Make 我试着在MinGW上使用它,但它应该也能在CMD上工作

如果你使用的是Windows 10,它是内置在Linux子系统特性中的。只需启动一个Bash提示符(按Windows键,然后键入bash并选择“Bash on Ubuntu on Windows”),cd到你想创建的目录并键入make

FWIW, Windows驱动器在/mnt中找到,例如在Bash中C:\驱动器是/mnt/c

如果Bash在开始菜单中不可用,下面是打开Windows功能(仅限64位Windows)的说明:

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

另一种选择是,如果你已经安装了minGW,并添加了bin文件夹的to Path环境变量,你可以使用“mingw32-make”而不是“make”。

你也可以创建一个从"make"到"mingw32-make"的符号链接,或者复制并更改文件名。我不推荐之前的选项,他们会工作,直到你对minGW做改变。

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

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

如果你想使用命令行模拟器cder,一个解决方案可能会有帮助。您可以随意地安装包安装程序。首先,我们在windows命令提示符中使用以下行安装chocately:

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

在安装了chocolatey之后,可以使用choco命令来安装make。安装完成后,你需要在/ cder /config/user_alias .cmd中添加一个别名。应增加以下一行:

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

然后,Make将在cmder环境中操作。

  1. < p >安装npm

  2. < p >安装节点

  3. < p >安装

    node install make up
    node install make
    
  4. 如果上面的命令显示任何错误,那么安装Chocolatey(choco)

  5. 打开cmd并复制并粘贴以下命令(命令从chocolatey URL复制)

    @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
    

我也曾经遇到过同样的问题。但我很惊讶没有找到一个特解。

从GnuWin32或通过winget安装是很好的和简单的选择。但我只找到了3.8.1。这个版本缺少非常重要的选项-O,它在编译多线程时正确处理输出。

choco目前似乎提供make 4.3。所以我们可以期待最近的版本。

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

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

正如其他人所指出的:如果其他程序也安装了各种make版本,那么这种手动安装可能会导致冲突。

除了GNU之外,您可能还需要许多coreutils。Touch, rm, cp, sed, test, tee, echo等等。构建系统可能需要bash特性,如果没有其他原因,通常从进程ID($$$$)创建临时文件名。没有bash是不行的。你可以用Windows上流行的POSIX模拟器得到所有东西:

  • Cygwin (http://www.cygwin.org/)可能是最流行的,也是与POSIX最兼容的。在Windows路径上有一些困难,而且很慢。
  • 它又好又快,但现在被放弃了。没有提供bash,但是可以从其他包中使用它。
  • 我目前的最爱。速度快,效果好。它没有提供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可执行文件。这有点棘手!< / p >

你也可以安装独家新闻,然后运行:

scoop install make

在windows 10或11上,可以在命令行或powershell中运行命令winget install GnuWin32.Make来快速安装。然后你可以使用命令cmake