该错误没有找到具体的根因, 只知道解决方案:
修改环境变量, 删除或者将Microsoft Store的环境变量移动到最后
mingw32-make.exe 在 WIN11 上执行 gcc 命令的时候, 会将 gcc 命令封装成一个 bat 脚本执行;
当时非常迷惑的原因是:
手动调用 cmd, 并在 cmd 中执行该 bat 脚本, 执行正常, 一旦涉及到使用 Makefile, CreateProcess 这个 API 就会执行失败;
该问题的主要原因是:
WIN11 下的C:\Windows\SysWOW64下的 cmd.exe 丢了, 但是C:\Windows\System32下的 cmd 还在, AI 给出的解释是 由于 mingw32-make.exe 是 32 位的程序, 会被 windows 加载到 64 位环境下执行, 但是 64 位环境(C:\Windows\SysWOW64)下没有 cmd.exe, 所以报错. (windows 的报错友好度真的低, 忙了一晚上定位出来这个坑爹的环境问题)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.