mingw编译错误之CreateProcess failed

1.报错信息


if not exist ../../lib/gcc_lib/mswud/wx mkdir ../../lib/gcc_lib/mswud/wx
process_begin: CreateProcess(NULL, -c "if not exist ../../lib/gcc_lib/mswud/wx mkdir ../../lib/gcc_lib/mswud/wx", ...) failed.

2.原因分析


安装了MSYS后,利用Make命令会首先执行MSYS中的SHELL命令,从而会导致编译错误,对于这种情况,可以修改 $(WX)/build/msw目录中的makefile.gcc文件,使其默认采用CMD命令行。

3.解决方法


在makefile.gcc中修改下面的行:
makefile.gcc修改前: SHELL := $(COMSPEC)
makefile.gcc修改后: SHELL := C:\WINDOWS\system32\CMD.exe (该路径为实际的CMD.exe的路径)