Spa*_*yNZ 4 mingw gnu-make windows-10
我最近从Window 7迁移到Windows 10,无法继续使用我的makefile。
我注意到的第一件事是它已开始将Windows文件夹分隔符(反斜杠字符“ \”)视为行继续字符,因此我修改了“ clean”部分,如下所示,改为使用正斜杠“ /”字符:
clean:
del $(ObjDir)/*.o
Run Code Online (Sandbox Code Playgroud)
当我打电话时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
Run Code Online (Sandbox Code Playgroud)
我的PC上确实有MinGw文件夹(已重命名以停止寻找它),并且在Cmd.exe环境或PATH中看不到任何与“ MingGw”相关的环境变量
我如何才能make工作,这样它就不会尝试sh在Windows下执行?
是否有一些配置参数可以调用它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.
Run Code Online (Sandbox Code Playgroud)
这个问题的令人讨厌的结论。
make在PATH环境变量中查找包含的任何内容usr/bin。由于我也在Windows 10 PC上安装了Git,因此Git将以下文件夹添加到PATH:
C:\Program Files\Git\usr\bin
Run Code Online (Sandbox Code Playgroud)
使用子字符串“ usr \ bin” 添加任何路径将使make尝试运行,sh而不是cmd.exe在Windows上运行。
我的解决方案:C:\Program Files\Git\usr\bin从中删除PATH。
更新:我将名称从更改为usr\bin,user\bin但make仍在sh.exe该文件夹中找到。最后,我在文件夹中重命名sh.exe为。_sh.exeGit\usr\bin
最干净的方法是SHELL在命令行上指定。
make -ftest.mak clean SHELL=cmd
Run Code Online (Sandbox Code Playgroud)
会做的工作。ndk-build会为您做到这一点,请参阅您的ndk-build.cmd. 不要尝试ndk-build在 Windows 上运行bash 脚本。当您在 Windows 上使用 bash 运行 NDK 中的脚本时,它们可能会变成 amoc。
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |