如何在Windows中安装和使用"make"?
How to install and use "make" in Windows?
我正在按照某人的说明进行操作,我将其存储库克隆到了我的机器上。我想使用 make
命令作为设置代码环境的一部分,但我使用的是 Windows。我在网上搜索,但我只能找到一个 make.exe
文件,一个 make-4.1.tar.gz
文件(我不知道接下来要做什么)以及如何下载 MinGW 的说明(对于 GNU;但是之后安装它我没有发现任何提及“make”)。
如何在没有 GNU 编译器或相关软件包的情况下在 Windows 中使用 make
?
make
是一个 GNU 命令,因此在 Windows 上获得它的唯一方法是安装 Windows 版本,如 GNUWin32 提供的版本。无论如何,有几种选择:
最简单的选择是使用Chocolatey。首先你需要安装这个包管理器。安装后,您只需安装 make
(您可能需要 运行 在 elevated/admin 命令提示符下):
choco install make
其他推荐的选项是 installing a Windows Subsystem for Linux (WSL/WSL2),因此您可以在 Windows 10 中嵌入您选择的 Linux 分布,您将能够安装 make
、gcc
以及构建 C 程序所需的所有工具。
对于旧的 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 安装 make(正如@Vasantha Ganesh K 所指出的)
另一种选择是从 Chocolatey 安装 MSYS2 并使用 C:\tools\msys64\usr\bin
的 make
。如果 make
没有随 MSYS2 自动安装,您需要通过 pacman -S make
手动安装它(正如@Thad Guidry 和@Luke 所指出的)。
- 安装 Msys2 http://www.msys2.org
- 关注installation instructions
- Install make 与
$ pacman -S make gettext base-devel
- 将
C:\msys64\usr\bin\
添加到您的路径中
从他们的官方网站下载 make.exe GnuWin32
在下载会话中,单击
完整包,来源除外。
按照安装说明进行操作。
完成后,将 <installation directory>/bin/
添加到 PATH 变量。
现在您可以在cmd中使用make了。
GNU make 在 chocolatey 上可用。
从 here 安装 chocolatey。
然后,choco install make
.
现在您可以在 windows.
上使用 Make
我试过在 MinGW 上使用它,但它应该也适用于 CMD。
如果您使用的是 Windows 10,它内置于 Linux 子系统功能中。只需启动 Bash 提示符(按 Windows 键,然后键入 bash
并选择 "Bash on Ubuntu on Windows"),cd
到您要创建的目录并键入 make
.
FWIW,Windows 驱动器位于 /mnt
,例如C:\
驱动器是 /mnt/c
Bash。
如果 Bash 在您的开始菜单中不可用,这里是打开 Windows 功能的说明(仅限 64 位 Windows):
另一种选择是,如果您已经安装了 minGW 并将 bin 文件夹添加到 Path 环境变量,则可以使用 "mingw32-make" 而不是 "make"。
您还可以创建从 "make" 到 "mingw32-make" 的符号链接,或者复制并更改文件名。我以前不会推荐这些选项,它们会起作用,直到你对 minGW 进行更改。
我可以建议一个循序渐进的方法。
- 访问GNUwin
- 下载Setup Program
- 按照说明安装 GNUWin。您应该注意安装应用程序的目录。 (您稍后会需要它1)
- 按照these instructions 并将make 添加到您的环境变量中。正如我之前告诉您的,现在是时候知道您的应用程序安装在哪里了。
仅供参考:默认目录是
C:\Program Files (x86)\GnuWin32\
。
- 现在,更新 PATH 以包含新安装程序的 bin 目录。
可能添加到路径的典型示例是:
...;C:\Program Files (x86)\GnuWin32\bin
如果您想使用命令行模拟器 cmder,一个可能有用的解决方案。您可以选择安装软件包安装程序。首先,我们使用以下行在 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。安装后,您需要为 /cmder/config/user_aliases.cmd 添加一个别名。应添加以下行:
make="path_to_chocolatey\chocolatey\bin\make.exe" $*
Make会在cmder环境下运行
安装 npm
安装节点
安装 Make
node install make up
node install make
如果以上命令显示任何错误,请安装 Chocolatey(choco)
打开 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
安装是不错且简单的选择。但我只在那里找到了 make 3.8.1。这个版本缺少非常重要的选项-O
,它可以在多线程编译时正确处理输出。
choco
目前似乎提供 make 4.3。所以人们可以期待那里的最新版本。
不过也有自编译的选项。如果你必须安装用于编译的make
,这应该是一个有效的选项。
- 前往 https://www.gnu.org/software/make/ 并下载您喜欢的版本
- 解压缩 tar.gz 文件(使用 7zip 并解压缩文件两次以检索实际内容)
- 导航到创建的目录
- 在该目录中打开命令提示符
- 运行
build_w32.bat gcc
这将使用您需要提前安装的 gcc 编译器开始编译。当 运行ning build_w32.bat
没有任何选项时,他们尝试使用 MSVC 编译器。旁注:令我惊讶的是,gnu 不使用 gcc 作为默认设置,而是使用 MSVC :-)
- 忽略编译期间产生的警告。结果应该还是可以的
- 从目录 GccRel(使用 gcc 编译时)
中检索新的 gnumake.exe
- 将此文件放在你喜欢的地方并重命名为
make.exe
- 将位置添加到系统变量 %PATH%
正如其他人所指出的:如果您还通过其他程序安装了各种 make 版本,则此手动安装可能会导致冲突。
很有可能除了 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,它是最新的。
请注意,您可能无法 select 您的环境。如果构建系统是为 Cygwin 创建的,它可能无法在不修改的情况下在其他环境中工作(make 语言是相同的,但转义、路径转换的工作方式不同,$(realpath) 在 Windows 路径上失败,DOS bat文件以 shell 脚本和许多类似问题开始)。如果它来自 Linux,您可能需要使用真正的 Linux 或 WSL。
如果编译器在 Linux 上 运行ning,则没有必要为 Windows 安装 make,因为您必须 运行 在 [=] 上同时安装 make 和编译器57=]。同样,如果编译器在 Windows 上 运行ning,WSL 也无济于事,因为在那个环境中你只能执行 Linux 工具,而不是 Windows 可执行文件.有点棘手!
我正在按照某人的说明进行操作,我将其存储库克隆到了我的机器上。我想使用 make
命令作为设置代码环境的一部分,但我使用的是 Windows。我在网上搜索,但我只能找到一个 make.exe
文件,一个 make-4.1.tar.gz
文件(我不知道接下来要做什么)以及如何下载 MinGW 的说明(对于 GNU;但是之后安装它我没有发现任何提及“make”)。
如何在没有 GNU 编译器或相关软件包的情况下在 Windows 中使用 make
?
make
是一个 GNU 命令,因此在 Windows 上获得它的唯一方法是安装 Windows 版本,如 GNUWin32 提供的版本。无论如何,有几种选择:
最简单的选择是使用Chocolatey。首先你需要安装这个包管理器。安装后,您只需安装
make
(您可能需要 运行 在 elevated/admin 命令提示符下):choco install make
其他推荐的选项是 installing a Windows Subsystem for Linux (WSL/WSL2),因此您可以在 Windows 10 中嵌入您选择的 Linux 分布,您将能够安装
make
、gcc
以及构建 C 程序所需的所有工具。对于旧的 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 安装 make(正如@Vasantha Ganesh K 所指出的)
另一种选择是从 Chocolatey 安装 MSYS2 并使用 C:\tools\msys64\usr\bin
的 make
。如果 make
没有随 MSYS2 自动安装,您需要通过 pacman -S make
手动安装它(正如@Thad Guidry 和@Luke 所指出的)。
- 安装 Msys2 http://www.msys2.org
- 关注installation instructions
- Install make 与
$ pacman -S make gettext base-devel
- 将
C:\msys64\usr\bin\
添加到您的路径中
从他们的官方网站下载 make.exe GnuWin32
在下载会话中,单击 完整包,来源除外。
按照安装说明进行操作。
完成后,将
<installation directory>/bin/
添加到 PATH 变量。
现在您可以在cmd中使用make了。
GNU make 在 chocolatey 上可用。
从 here 安装 chocolatey。
然后,
choco install make
.
现在您可以在 windows.
上使用 Make
我试过在 MinGW 上使用它,但它应该也适用于 CMD。
如果您使用的是 Windows 10,它内置于 Linux 子系统功能中。只需启动 Bash 提示符(按 Windows 键,然后键入 bash
并选择 "Bash on Ubuntu on Windows"),cd
到您要创建的目录并键入 make
.
FWIW,Windows 驱动器位于 /mnt
,例如C:\
驱动器是 /mnt/c
Bash。
如果 Bash 在您的开始菜单中不可用,这里是打开 Windows 功能的说明(仅限 64 位 Windows):
另一种选择是,如果您已经安装了 minGW 并将 bin 文件夹添加到 Path 环境变量,则可以使用 "mingw32-make" 而不是 "make"。
您还可以创建从 "make" 到 "mingw32-make" 的符号链接,或者复制并更改文件名。我以前不会推荐这些选项,它们会起作用,直到你对 minGW 进行更改。
我可以建议一个循序渐进的方法。
- 访问GNUwin
- 下载Setup Program
- 按照说明安装 GNUWin。您应该注意安装应用程序的目录。 (您稍后会需要它1)
- 按照these instructions 并将make 添加到您的环境变量中。正如我之前告诉您的,现在是时候知道您的应用程序安装在哪里了。
仅供参考:默认目录是
C:\Program Files (x86)\GnuWin32\
。 - 现在,更新 PATH 以包含新安装程序的 bin 目录。
可能添加到路径的典型示例是:
...;C:\Program Files (x86)\GnuWin32\bin
如果您想使用命令行模拟器 cmder,一个可能有用的解决方案。您可以选择安装软件包安装程序。首先,我们使用以下行在 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。安装后,您需要为 /cmder/config/user_aliases.cmd 添加一个别名。应添加以下行:
make="path_to_chocolatey\chocolatey\bin\make.exe" $*
Make会在cmder环境下运行
安装 npm
安装节点
安装 Make
node install make up node install make
如果以上命令显示任何错误,请安装 Chocolatey(choco)
打开 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
安装是不错且简单的选择。但我只在那里找到了 make 3.8.1。这个版本缺少非常重要的选项-O
,它可以在多线程编译时正确处理输出。
choco
目前似乎提供 make 4.3。所以人们可以期待那里的最新版本。
不过也有自编译的选项。如果你必须安装用于编译的make
,这应该是一个有效的选项。
- 前往 https://www.gnu.org/software/make/ 并下载您喜欢的版本
- 解压缩 tar.gz 文件(使用 7zip 并解压缩文件两次以检索实际内容)
- 导航到创建的目录
- 在该目录中打开命令提示符
- 运行
build_w32.bat gcc
这将使用您需要提前安装的 gcc 编译器开始编译。当 运行ningbuild_w32.bat
没有任何选项时,他们尝试使用 MSVC 编译器。旁注:令我惊讶的是,gnu 不使用 gcc 作为默认设置,而是使用 MSVC :-) - 忽略编译期间产生的警告。结果应该还是可以的
- 从目录 GccRel(使用 gcc 编译时) 中检索新的
- 将此文件放在你喜欢的地方并重命名为
make.exe
- 将位置添加到系统变量 %PATH%
gnumake.exe
正如其他人所指出的:如果您还通过其他程序安装了各种 make 版本,则此手动安装可能会导致冲突。
很有可能除了 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,它是最新的。
请注意,您可能无法 select 您的环境。如果构建系统是为 Cygwin 创建的,它可能无法在不修改的情况下在其他环境中工作(make 语言是相同的,但转义、路径转换的工作方式不同,$(realpath) 在 Windows 路径上失败,DOS bat文件以 shell 脚本和许多类似问题开始)。如果它来自 Linux,您可能需要使用真正的 Linux 或 WSL。 如果编译器在 Linux 上 运行ning,则没有必要为 Windows 安装 make,因为您必须 运行 在 [=] 上同时安装 make 和编译器57=]。同样,如果编译器在 Windows 上 运行ning,WSL 也无济于事,因为在那个环境中你只能执行 Linux 工具,而不是 Windows 可执行文件.有点棘手!