windows下使用GNU make命令报错的解决方法

windows下使用GNU make命令报错的解决方法
=
> 错误信息:make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3)

## 1.原因
环境变量中配置了`D:Program Files (x86)Gitin`,该目录下存在一个`sh.exe`

在执行make命令时,如果在`MakeFile`文件中没有指定shell的路径,`make`就会到环境变量中,去找一个`X:\XXXXXXsh.exe`作为它的默认shell
> 原文
```
The program used as the shell is taken from the variable SHELL. If this variable is not set in your makefile, the program /bin/sh is used as the shell. The argument(s) passed to the shell are taken from the variable .SHELLFLAGS. The default value of .SHELLFLAGS is -c normally, or -ec in POSIX-conforming mode.
```
> 参考:https://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html

而由于环境变量中配置了`D:Program Files (x86)Gitin`,令到make就取了'D:Program Files (x86)Gitinsh.exe'作为它的shell

而在windows下,是要以`C:WindowsSystem32cmd.exe`作为shell的,所以就产生了标题所示的报错

## 2.解决方法
在`MakeFile`文件最初的位置,添加:
```makefile
SHELL=C:WindowsSystem32cmd.exe
```
原文地址:https://www.cnblogs.com/ningkyolei/p/5371436.html