I'm using Make from the MinGW distribution. It has always worked, but recently I've gotten the following error:
> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)
And the respective part looks like this:
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)
I have no idea what causes this. Especially because it always has worked perfectly fine.
I was starting to get an exception as well:
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3)
Might be a different reason, but this problem is apparently caused when the PATH variable contains parentheses (
, )
, as it does on Win Vista/7. Unfortunately, the available GNU for Windows is hopelessly outdated.
My problem was fixed by forcing make
use the correct shell: insert the following line at the beginning of your makefile.
SHELL=C:/Windows/System32/cmd.exe
I had that issue when I added Git's bin directory to the PATH
environment variable. The reason seems to be that Git ships with a version of MSYS and that seems to conflict with MinGW (maybe it doesn't conflict when it's the right version of MSYS and/or MinGW but that's just guessing).
So make sure that there is no (other) MSYS distribution in your PATH
.
Futher to Norbet P.'s answer, I found that adding:
PATH=
to the top of my Makefile fixed this particular problem for me.
This make
bug is fixed at least in
GNU Make 3.82
Built for i686-pc-mingw32
.
I used GnuWin until I realised last release was posted back in 26 Nov in 2006 . Thats a bit lame, and caused such problems as seen above. Setting SHELL=C:/Windows/System32/cmd.exe does solve some problems but running such old code on new operatingsystems feels unsafe
MinGw is a safer bet. MinGw is acronym for "Minimalist GNU for Windows" and is up to date and includes make and other tools
The Windows error code 0xC0000005
indicates an access violation, or segmentation fault.
I noticed in my compile logs that "SHELL=sh" was being passed to make, even though I am on windows platform. My Makfile looked like this:
ifneq (,$(findstring win,$(RDI_PLATFORM))) SHELL = CMD endif
Once I commented the ifneq and end it started working. Not sure why the platform was not interpreted correctly.
User contributions licensed under CC BY-SA 3.0