在 Linux 下,项目源Makefile
代码通常带有 。 Makefile 包含使用命令 构建这些项目的指令make
。 我目前被迫使用 Windows,为了能够使用此操作系统,我配置并增强了“PowerShell”(通过安装一些附加程序,例如 或vim
,svn
一个名为 的模块PSReadLine
,编写 PowerShell 配置文件等)。
但是我找不到是否可以make
在 PowerShell 中安装。我知道我还必须安装make
会调用的程序,例如,g++
或,但那是以后的事了。现在我首先pdflatex
想让它工作起来。make
一些研究表明有两种可能性:
对这个非常相似的问题的公认答案是:如何在 Windows 上使用 makefile,建议使用 Cygwin。这是有可能的,Cygwin 很棒,但是因为我决定给 PowerShell 一个机会,所以我想知道这是否也可以用电源外壳, 不是赛格威。因此,这个问题不是重复的,因为另一个问题是关于一些可以
make
在 Windows 中使用,而我特别要求使用 PowerShell。存在一个
make
名为 PowerShell 克隆的克隆波什马克,但 Poshmake 文件的语法与通常的 Makefile 不同,这是不行的。我想要一个真正的make
,因为为我手头的所有项目维护两个版本的 Makefile 不是一个选择。
那么:是否可以安装 GNU make,它将理解典型 Makefile 的语法,以便我可以make
从内部调用电源外壳?
答案1
看一眼“为 Windows 制作”。安装后,只需从 CMD 或 PowerShell 调用“make”即可。
答案2
2021 年 3 月 Windows 10 企业版 64 位成功方法
尽管看起来很旧,但是“make”的 gnuwin 安装运行良好,反映了 Linux 和 Windows 的稳定性和向后支持。
我按照说明进行操作http://gnuwin32.sourceforge.net/packages/make.htm和http://gnuwin32.sourceforge.net/install.html。下面是我实际做的:
下载“完整软件包,除源代码外” (http://gnuwin32.sourceforge.net/downlinks/make.php)这将下载:
制作-3.81.exe
双击文件执行 make-3.81.exe
在安装向导中它将显示安装路径,默认为:
C:\Program 文件(x86)\GnuWin32
(在安装向导中我没有安装文档也没有创建启动快捷方式。)
将二进制文件的路径添加到 Windows 路径变量中。这将是安装路径 +“\bin”。我使用以下命令从 Windows 命令 shell 执行此操作:
设置 PATH=%PATH%;"C:\Program Files (x86)\GnuWin32\bin"
使用命令确认添加路径:
回显 %PATH%
这应该显示路径列表并包括“C:\Program Files (x86)\GnuWin32\bin”
关闭您想要在其中使用“make”命令的所有应用程序或 shell,然后重新打开它们。这将在应用程序中加载新的路径位置。
要测试,请在 powershell 或 windows cmd shell 中输入以下内容:
制作-v
它应该显示版权等。
答案3
** 2022 年更新 **
使用包管理器 Chocolatey,运行choco install make
。
为了验证您现在已有make
,请运行make --version
。
要安装 Chocolatey,请运行:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
答案4
由于这是我在 Bing 上搜索“PowerShell make”得到的第一个结果,因此我创建了这个答案来指出官方 GNU 页面和镜子将 Make for Windows 源代码作为 tar.gz 文件的一部分,并且截至 2020 年 1 月已更新至版本 4.3。其他答案中提供的 sourceforge 链接仍然是 2006 年 3.8.1 版本。我不熟悉 4.x 中的更改,因为我不经常使用 make,但我认为最好保持这个问题的更新,这样当其他人不可避免地发现它时,他们就不会感到困惑。
但是,GNU 页面上的文件不包含任何二进制文件,因此您必须使用 GCC 或 MSVC 自行构建(这很简单,只需一个 ./build_w32.bat(根据您的编译器带有一些标志),这在 README.W32 文件中概述。然后,您需要获取生成的文件夹,将其存储在您想要的位置,然后添加到路径或在 PowerShell 中创建别名以运行该 exe。
我找到的唯一预构建二进制文件托管在 Chocolatey 上。Winget 和 AppGet(网站似乎在发布时仍在运行,尽管它应该关闭)软件包仍然是旧的 3.8.1 版本。如果有任何其他二进制文件位置,请告诉我/在评论中发布/编辑此答案。