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

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


当前回答

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

在下载会话中,单击 完整的包,除了源代码。 按照安装说明安装。 完成后,将<安装目录>/bin/添加到PATH变量中。

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

其他回答

如果你想使用命令行模拟器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环境中操作。

Install npm install Node Install Make node install make up node install make If above commands displays any error then install Chocolatey(choco) Open cmd and copy and paste the below command (command copied from 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"

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

The most simple choice is using Chocolatey. First you need to install this package manager. Once installed you simlpy need to install make (you may need to run it in an elevated/admin command prompt) : choco install make Other recommended option is installing a Windows Subsystem for Linux (WSL/WSL2), so you'll have a Linux distribution of your choice embedded in Windows 10 where you'll be able to install make, gccand all the tools you need to build C programs. For older Windows versions (MS Windows 2000 / XP / 2003 / Vista / 2008 / 7 with msvcrt.dll) you can use GnuWin32.

一个过时的替代方案是MinGw,但这个项目似乎已经被放弃了,所以最好还是选择以前的一个选择。

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

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

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

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

head to https://www.gnu.org/software/make/ and download a version of your liking unpack the tar.gz files (use 7zip and unpack the file twice to retrieve the actual content) navigate to the created directory open command prompt in that directory run build_w32.bat gcc This will start the compilation with the gcc compiler, which you would need to install in advance. When running build_w32.bat without any option they try to use the MSVC compiler. Sidenote: I found it surprising that gnu does not use gcc as default but MSVC :-) ignore the warnings created during compilation. The result should still be fine retrieve your fresh gnumake.exe from the directoy GccRel (when compiled with gcc) put this file somewhere where you like and rename to make.exe add the location to the system variable %PATH%

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

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

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