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

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

在执行make命令时,如果在`MakeFile`文件中没有指定shell的路径,`make`就会到环境变量中,去找一个`X:\\XXX\XXX\sh.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)\Git\bin`,令到make就取了'D:\Program Files (x86)\Git\bin\sh.exe'作为它的shell

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

## 2.解决方法
在`MakeFile`文件最初的位置,添加:
```makefile
SHELL=C:\Windows\System32\cmd.exe
```

转载于:https://www.cnblogs.com/ningkyolei/p/5371436.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐