【发布时间】:2018-06-01 04:16:01
【问题描述】:
我最近从 Window 7 迁移到了 Windows 10,我的 makefile 无法再工作了。
我一直在用GNU Make for Windows
我注意到的第一件事是它已开始将 Windows 文件夹分隔符(反斜杠字符“\”)视为行继续字符,因此我修改了“干净”部分,如下所示,改为使用正斜杠“/”字符:
clean:
del $(ObjDir)/*.o
当我调用 make -ftest.mak clean 时,我收到以下错误,这表明它现在正在尝试在 MinGw/Cygwin 环境中运行:
c:\Test\Source>make -ftest.mak clean
del obj/*.o
/usr/bin/sh: del: command not found
make: *** [clean] Error 127
我的 PC 上确实有 MinGw 文件夹(我已将其重命名以停止查找它)并且在我的 Cmd.exe 环境或 PATH 中看不到任何与“MingGw”相关的环境变量
我怎样才能让make 工作,这样它就不会尝试在Windows 下执行sh?
是否有一些配置参数使它调用sh 而不是cmd.exe?
更新:刚刚尝试运行 make -d 来记录调试输出。看起来好像它正在使用我的 Git 文件夹作为某种根文件夹:
Must remake target `clean'.
del obj/*.o
CreateProcess(NULL,C:/Program Files/Git/usr/bin/sh.exe -c "del obj/*.o",...)
Putting child 0x006e7fc0 (clean) PID 7234712 on the chain.
【问题讨论】:
-
如果你在 makefile 中指定它,GNU Make 将不会使用任何错误的启发式方法来检测你的 shell,如
SHELL := cmd,根据 5.3.2 Choosing the Shell
标签: windows-10 mingw gnu-make