我最近从Windows 7升级到了Windows 10,但是我的makefile无法正常工作。
我一直在使用GNU Make for Windows。
我注意到的第一件事是它开始将Windows文件夹分隔符(反斜杠字符'\')视为换行符,因此我修改了“clean”部分,如下所示,改用正斜杠'/'字符:
当我调用
我在我的电脑上有MinGW文件夹(我已将其重命名以防止查找),我无法在我的Cmd.exe环境或PATH中看到任何与MingGw相关的环境变量。
如何让make工作,使它不会尝试在Windows下执行sh?
是否有某个配置参数使它调用sh而不是cmd.exe?
更新:刚刚尝试运行make -d,它记录了调试输出。看起来它正在使用我的Git文件夹作为某种根文件夹:
我一直在使用GNU Make for Windows。
我注意到的第一件事是它开始将Windows文件夹分隔符(反斜杠字符'\')视为换行符,因此我修改了“clean”部分,如下所示,改用正斜杠'/'字符:
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
我在我的电脑上有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.
SHELL := cmd
),GNU Make将不会使用任何有失败风险的启发式方法来检测它,详见5.3.2 选择Shell。 - Mike Kinghan