MinGW和/或MSYS不再包含make吗?

20
我在Windows 7电脑上安装了MinGW和MSYS。 我将C:\Program Files (x86)\MinGW\bin添加到了路径。像gccg++这样的命令可以正常工作,但是make命令无法执行。我检查了目录,虽然我安装了所有组件,但没有一个名为make的可执行文件。有一个名为mingw32-make的文件。还有其他以mingw32-为前缀的文件,例如c ++、g ++、gcc、gcc-4.6.1和gfortran。但是,在C:\Program Files (x86)\MinGW\msys\1.0\bin中有一个make
如果我打开MinGW Shell并输入makemake会执行。但是,它无法从Windows终端执行。
这是否是故意的,或者我可能也错过了其他可执行文件?我应该只需将C:\Program Files (x86)\MinGW\msys\1.0\bin添加到路径中吗?

把msys的bin目录添加到你的路径中(在MinGW的bin目录之后)。这正是MinGW shell所做的,也是它能够在那里工作的原因。 - eriktous
@eriktous 如果您将其发布为答案,我可以接受它。我在MinGW文档中找不到任何地方说要这样做 - 一切都只是说要将mingw / bin添加到您的路径中。 - Thomas Owens
@ThomasOwens:我非常确定mingw32-makemake是相同的,只是前缀不同。 - user541686
不知道文档怎么说,但是可以这样想:操作系统还能怎么找到程序呢?它只会在 PATH 中的目录中查找可执行文件。 - eriktous
1
@Mehrdad:我非常确定不是这样的。mingw32-make被构建为独立运行的程序。(MSYS-)make需要MSYS运行时才能工作。 - eriktous
显示剩余3条评论
4个回答

10

是的,在您的路径中添加msys bin目录(在MinGW的bin目录之后)。这正是MinGW shell所做的以及它在那里工作的原因。


2

MSYS答案


打开你的MSYS命令终端(已安装最新版MSYS)。 键入“make”。它会说它不存在。 根据:https://packages.msys2.org/package/make,键入pacman -S make。键入Y以确认。 现在已经安装了Make! 键入“make”,它会要求您指定输入文件。 可能仅从MSYS命令终端调用它。 通过右键单击其任务栏图标将MSYS命令终端固定到任务栏上。

1
你描述的是MSYS2,而不是OP使用的旧版MSYS(1.0)。 - HolyBlackCat
@HolyBlackCat 是时候升级了吧... :) - D Left Adjoint to U

1

尝试使用gmake。有时,GNU版本的Make会安装为gmake,以区别于非GNU Make。


我忘了提到,我阅读了一个关于设置MinGW的问题链接中的博客文章。gmake也没有作用。在继续通过Google搜索时,我确实读到了安装到Program Files并不被推荐(尽管它是我的默认安装目录),所以我也重新安装到了C:\mingw。 - Thomas Owens
2
是的,mingw最终会因为你将其安装在包含空格的路径中而感到不满。 - Greg Hewgill
有意思。我在Google翻阅了好几页才看到这篇文章。我只是安装到默认位置,觉得一切都会很好。显然,并非如此。 - Thomas Owens
1
重新安装刚刚完成。在C:\mingw\bin中没有makegmake,但仍然有一个mingw32-makemake可执行文件仍位于C:\mingw\msys\1.0\bin。我考虑将第二个目录添加到我的路径中并完成它。希望Eclipse能够应对。 - Thomas Owens

0

C:\Program files\xxx 中含有空格!由于涉及到 shell 脚本,空格是很重要的,必须进行转义。因此,这个路径在 mingw 中不能使用。文档建议将 MingW 安装在 C:\MingW 中。


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