make:中断/异常被捕获

orl*_*rlp 33 windows mingw make

我正在使用 MinGW 发行版中的 Make。它一直有效,但最近我收到以下错误:

> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)
Run Code Online (Sandbox Code Playgroud)

相应的部分如下所示:

clean:
    del /S /Q *.o > nul
    del /S /Q *.cy.c > nul
    del /S /Q *.pyc > nul
    del /S /Q *.pyo > nul
    if EXIST build (rmdir /S /Q dist > nul)
Run Code Online (Sandbox Code Playgroud)

我不知道是什么原因造成的。尤其是因为它始终运行良好。

小智 46

我也开始出现异常:

make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3)
Run Code Online (Sandbox Code Playgroud)

可能是不同的原因,但是当 PATH 变量包含括号(, 时),显然会导致此问题,就像在 Win Vista/7 上一样。不幸的是,可用于 Windows 的 GNU 已经无可救药地过时了。

我的问题是通过强制make使用正确的 shell 解决的:在 makefile 的开头插入以下行。

SHELL=C:/Windows/System32/cmd.exe
Run Code Online (Sandbox Code Playgroud)

  • 可能也与 PATH 的长度有关?就我而言,我的 PATH 已经有很多括号,没有任何问题(直到我安装了更多东西);将“C:\Program Files”的所有实例替换为“C:\PROGRA~1”,将“C:\Program Files (x86)”替换为“C:\PROGRA~2”解决了我的问题。+1:-) (2认同)

Ign*_*tor 8

当我将 Git 的 bin 目录添加到PATH环境变量时,我遇到了这个问题。原因似乎是 Git 附带了一个 MSYS 版本,这似乎与 MinGW 冲突(当它是 MSYS 和/或 MinGW 的正确版本时,它可能不会冲突,但这只是猜测)。

因此,请确保您的PATH.