我正在按照我克隆到本地的某个人的代码库的指示进行操作。作为设置代码环境的一部分,我想要使用make
命令,但我使用的是Windows系统。我在网上搜索,但只找到了一个make.exe
文件,一个make-4.1.tar.gz
文件(我不知道该如何处理),以及有关如何下载MinGW(针对GNU的软件;但安装后我没有找到任何有关“make”的提及)的说明。
如何在Windows中使用make
而不需要GNU编译器或相关软件包?
我正在按照我克隆到本地的某个人的代码库的指示进行操作。作为设置代码环境的一部分,我想要使用make
命令,但我使用的是Windows系统。我在网上搜索,但只找到了一个make.exe
文件,一个make-4.1.tar.gz
文件(我不知道该如何处理),以及有关如何下载MinGW(针对GNU的软件;但安装后我没有找到任何有关“make”的提及)的说明。
如何在Windows中使用make
而不需要GNU编译器或相关软件包?
make
是一个GNU命令,所以在Windows上获取它的唯一方法是安装一个Windows版本,比如GNUWin32提供的版本。无论如何,有几种获取该命令的选项:
直接从适用于Windows的制作下载。
使用Chocolatey。首先需要安装这个软件包管理器。安装完成后,只需安装make
(可能需要在提升/管理员命令提示符中运行):
choco install make
另一个推荐的选项是安装Windows子系统 for Linux (WSL/WSL2),这样你就可以在Windows 10中嵌入一个你选择的Linux发行版,在其中安装make
、gcc
和构建C程序所需的所有工具。
对于旧版本的Windows(MS Windows 2000 / XP / 2003 / Vista / 2008 / 7,带有msvcrt.dll),您可以使用GnuWin32。
mklink C:\bin\make.exe C:\MinGW\bin\mingw32-make.exe
。因此,如果将来您升级了Mingw,该链接将仍然有效。 - kumarharshmklink
。MSYS2的pacman
可以安装make,即pacman -S make
,但是它不能正常工作。相反,在msys64/mingw64/bin
中已经存在mingw32-make.exe
。也许它是随着gcc
一起发布的。我不明白为什么它不只是被称为make.exe
。我只是将它复制到了make.exe
。 - NeonitGNU make可以在chocolatey上使用。
从这里安装chocolatey。
然后运行choco install make
进行安装。
现在您就可以在 Windows 上使用 Make 了。
我曾尝试在 MinGW 上使用它,但应该也可以在 CMD 上使用。
choco config set proxy ADDRESS:PORT
命令来设置正确的代理。 - weshoumanwinget install GnuWin32.Make
来快速安装它。然后您可以使用命令make
。C:\Program Files (x86)\GnuWin32\bin
添加到Windows环境变量PATH
中,以便快速访问该命令(感谢JobaDiniz
提供的提示)。C:\Program Files (x86)\GnuWin32\bin
添加到 Windows PATH 环境变量中。 - JobaDinizmake --version
- GNU Make 4.4.1
,winget make --version
- GNU Make 3.81
。 - Hrishikesh Kadammsstore
更改源:winget install --source winget GnuWin32.Make
。 - undefined一般来说,接受的答案是个坏主意,因为手动创建的 make.exe
将会存在并可能引起意外问题。它实际上破坏了RubyInstaller:https://github.com/oneclick/rubyinstaller2/issues/105
另一个选择是通过 Chocolatey 安装 make (正如 @Vasantha Ganesh K 指出的那样)
另一个选择是通过 Chocolatey 安装 MSYS2 并从 C:\tools\msys64\usr\bin
使用 make
。如果 make
没有随 MSYS2 自动安装,则需要通过 pacman -S make
手动安装(正如 @Thad Guidry 和 @Luke 指出的那样)。
C:\tools\msys64\usr\bin
目录下没有make.exe文件? - Rosdi Kasimbash并选择“在Windows上的Ubuntu中的Bash”), cd 进入要创建的目录,并键入make 。
顺便提一下,Windows驱动器位于/mnt 中,例如C:\ 驱动器在Bash中为 /mnt/c 。
如果在开始菜单中找不到Bash,请按以下说明打开该Windows功能(仅适用于64位Windows):
https://learn.microsoft.com/en-us/windows/wsl/install-win10
apt
软件包管理器是特定于Debian Linux和类似Ubuntu的派生发行版的。这就是WSL开箱即用的方式,但您可以配置它以运行其他需要不同软件包管理器的Linux变体。对于基于RPM的发行版,如CentOS和Fedora,有yum
和dnf
;对于Alpine等,有apk
,Arch使用pacman
等等。 - tripleee请从他们的官方网站GnuWin32下载make.exe。
在“Download”部分,点击Complete package, except sources。
按照安装说明进行安装。
安装完成后,将<installation directory>/bin/
添加到PATH变量中。
现在您就可以在cmd中使用make了。
$ pacman -S make gettext base-devel
安装make。C:\msys64\usr\bin\
添加到你的path环境变量中请注意,您可能无法选择自己的环境。如果构建系统是为Cygwin创建的,则在没有修改的情况下可能无法在其他环境中运行(make语言相同,但转义、路径转换不同工作,$(realpath)在Windows路径上失败,DOS批处理文件作为脚本启动,以及许多类似问题)。如果是来自Linux,则可能需要使用真正的Linux或WSL。 如果编译器在Linux上运行,则在Windows上安装make没有意义,因为您必须在Linux上同时运行make和编译器。同样,如果编译器在Windows上运行,则WSL不会有任何帮助,因为在该环境中,您只能执行Linux工具,而不能执行Windows可执行文件。这有点棘手!