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

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
```
posted @ 2016-04-09 13:06  泪已凝  阅读(3489)  评论(0编辑  收藏  举报