如何在Windows系统中运行makefile?

339

我有一些演示程序,它们带有Makefile.win和Makefile.sgi文件。如何在Windows中运行这些文件以编译演示程序?


5
我应该提一下,我更偏爱Linux系统,但现在需要使用Windows系统,所以我有点不知所措。 - Kim
4
这里提供了非常清晰的指南链接 - Scott
可能是 https://dev59.com/WFwY5IYBdhLWcg3w36-G 的重复问题。 - tripleee
1
@tripleee,我们应该如何考虑哪个是哪个的副本?这个问题来自2010年,而另一个问题即使投票相似,也来自2015年。 - β.εηοιτ.βε
1
@β.εηοιτ.βε 重复的年龄并不重要;一般规则是选择更好的问题和/或回答更好的问题,并将其作为规范。 - tripleee
显示剩余3条评论
22个回答

221

您可以使用维护良好的软件包管理器Chocolatey在Windows上安装GNU make,它将把make添加到全局路径并在所有命令行界面(如powershell、git bash、cmd等)上运行,可节省大量时间用于维护和初始设置。

  1. Windows
    兼容 Windows 7+ / Windows Server 2003+安装Chocolatey 软件包管理器

  2. 运行 choco install make

本人与choco无关,但非常推荐使用,至今从未让我失望过。不过我也有意外破坏软件的才华。


3
您很棒,非常感谢。这使得在Windows上的运行效果就像在本地Linux环境下使用Makefile一样!以前在WSL中使用make时遇到了一些问题,但是现在使用PowerShell就解决了这个问题,可以用于GUI Java应用程序的制作。 - Tumo Masire
这是在Windows中使用Make的最佳方式,没有任何复杂性。对我的团队工作良好。 - Lakshay Rohilla

152
如果你有Visual Studio,从开始菜单中运行“Visual Studio命令提示符”,切换到包含Makefile.win的目录并输入以下内容:
nmake -f Makefile.win

你也可以使用普通的命令提示符并运行vsvars32.bat(c:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ Tools for VS2008)。 这将设置环境以运行nmake并查找编译器工具。


8
我如何从开始菜单中打开Visual Studio命令提示符? - Kim
12
对于那些使用VS2012的用户,命令提示符被称为“VS2012开发人员命令提示符”。我是通过开始菜单中的搜索功能,输入“command”来找到它的。 - undeniablyrob
2
@MarceloCantos 我是一个 Linux 和制作方面的新手。如果我有 .am 和 .mk 文件,但没有任何 .win 文件,我该怎么办呢?顺便说一下,我正在尝试制作 wget。 - Cheeku
那些没有在开始菜单中找到的人怎么办?通过开始菜单导航到MSVS命令提示符不是一个有效的答案。我不知道它执行的确切命令,但是开始菜单中的所有内容都是一些带有几个命令行开关的可执行文件的快捷方式 - 我都想知道它们是什么。开始菜单不能帮助每个人。 - searchengine27
我获得了 MSVS 2010 C++ 的副本,这是该快捷方式的命令行 '%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86'。这不完全是我记得的,但无论如何,它就在那里。看起来在这种情况下,它所做的只是为常规 shell 设置环境。 - searchengine27
显示剩余11条评论

75

请查看GnuWinmake(适用于windows),它为Windows提供了本地端口(无需像Cygwin那样需要完整的运行时环境)

如果您拥有winget,可以通过CLI进行安装,如下所示:

winget install GnuWin32.Make

此外,请确保将安装路径添加到系统的PATH中:

C:\Program Files (x86)\GnuWin32\bin

13
另外,请将 "C:\Program Files(x86)\GnuWin32\bin" 添加到您的系统路径中。 - ccy
您也许需要考虑更改安装目录,以避免使用空格和圆括号,因为它们可能会导致运行CLI时出现问题。 - KyleMit
我今天在Win10上尝试了一下,我不需要将其添加到路径中...可以工作!也许WinGet现在更聪明了? - Joe DF

69

看看Cygwin,这是一个适用于Windows的类Unix环境。


7
Cygwin 对我很有用!在安装过程中,我只需要勾选 Devel 中的一些软件包:'make' 和 'gcc',就像这里所解释的那样。请注意,不要改变原文的含义。 - Damien Leroux
13
我还建议使用chocolatey安装cygwin,这样获取“make”命令的方式是:choco install make --source=cygwin - zygimantus
安装了choco之后,如何将其添加到命令行shell中?需要添加路径吗? - XaBerr
4
如果您使用choco安装了它,请将此行(不带引号)添加到系统变量的路径变量中:“C:\tools\cygwin\bin”。 - Ali.Ghodrat

40

以下是我快速临时运行Makefile的方法:

  • 从SourceForge下载makegnuwin32
  • 安装
  • 进入安装文件夹

C:\Program Files (x86)\GnuWin32\bin

  • 将bin文件夹中的所有文件复制到包含Makefile的文件夹中

libiconv2.dll libintl3.dll make.exe

  • 在包含Makefile的文件夹中打开cmd命令提示符(可以使用shift+右键并运行

make.exe

完成。

此外,您还可以在命令后添加参数,例如:

make.exe skel


17
最好将bin目录添加到PATH环境变量中。 这样可以使得make.exe在任何地方都可以使用。 - Yukulélé
1
我认为这是默认完成的 - 至少在我安装gnuwin32时是这样的。当然,复制文件本身就是不好的做法。 - JFFIGK
1
默认情况下不会这样做(或者在我的情况下不会)。将其添加到路径中,然后您可以从项目文件夹中运行_make_。 - Victor
像冠军一样工作 - trungducng

9
如果您安装了Cygwin。请确保在安装程序中选择make。然后,只要您有一个Makefile文件,就可以运行以下命令。
make -f Makefile

https://cygwin.com/install.html

9

我使用 MinGW 工具集,它提供了 mingw32-make 构建工具。如果您已将其添加到您的PATH 系统变量中,在 Windows 命令提示符中只需进入包含文件的目录并输入此命令:

mingw32-make -f Makefile.win

完成了。


1
可以复制 {mingw64文件夹}/bin/mingw32-make.exe 并将其重命名为 make.exe - Rohim Chou

8

我尝试了以上所有方法。以下是对我有帮助的方法:

  1. 下载 mingw-get
  2. 安装它。
  3. 将类似于 C:\MinGW\bin 的内容添加到环境变量中。
  4. 启动 (!important) git bash。Power shell、开发者命令提示符、系统命令提示符等都没有用。
  5. 在命令行中键入 mingw-get
  6. 然后输入 mingw-get install mingw32-make

完成!现在,您可能能够在包含Makefile的任何文件夹中使用make命令。


6

使用Visual Studio 2017时,我需要将此文件夹添加到我的Windows 10路径环境变量中:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64

还有 HostX86


4
如果是“NMake Makefile”,也就是说语法和命令与NMake兼容,它将在Windows上本地工作。通常,Makefile.win.win后缀)表示它是与Windows NMake兼容的makefile。因此,您可以尝试nmake -f Makefile.win
通常会提供标准的Linux Makefiles,并且NMake看起来很有前途。但是,以下链接介绍了一个简单的Linux Makefile并解释了可能遇到的一些基本问题。它还提供了处理Windows上的Linux Makefiles的一些替代方法。 在Windows中使用Makefiles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接