make: Interrupção / exceção capturada

31

Estou usando o Make da distribuição do MinGW. Sempre funcionou, mas recentemente recebi o seguinte erro:

> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)

E a respectiva parte é assim:

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)

Eu não tenho ideia do que causa isso. Especialmente porque sempre funcionou perfeitamente bem.

    
por orlp 05.01.2012 / 18:18

7 respostas

43

Eu também estava começando a receber uma exceção:

make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3)

Pode ser um motivo diferente, mas esse problema aparentemente é causado quando a variável PATH contém parênteses ( , ) , como no Win Vista / 7. Infelizmente, o GNU disponível para o Windows está irremediavelmente desatualizado.

Meu problema foi corrigido forçando make a usar o shell correto: insira a seguinte linha no início do seu makefile.

SHELL=C:/Windows/System32/cmd.exe
    
por 17.03.2012 / 13:52
8

Eu tive esse problema quando adicionei o diretório bin do Git à variável de ambiente PATH . O motivo parece ser que o Git vem com uma versão do MSYS e isso parece entrar em conflito com o MinGW (talvez não entre em conflito quando é a versão correta do MSYS e / ou do MinGW, mas isso é apenas suposição).

Portanto, certifique-se de que não haja nenhuma distribuição (diferente) do MSYS no seu PATH .

    
por 12.05.2014 / 11:20
3

Futher à resposta de Norbet P., eu achei que adicionando:

PATH=

na parte superior do meu Makefile corrigiu esse problema específico para mim.

    
por 14.04.2012 / 22:47
3

Esse bug make foi corrigido pelo menos em

GNU Make 3.82
Built for i686-pc-mingw32

.

    
por 25.04.2014 / 10:02
2

Eu usei o GnuWin até perceber que o último lançamento foi publicado em 26 de novembro em 2006 . Isso é um pouco idiota e causou problemas como os vistos acima. A configuração SHELL = C: /Windows/System32/cmd.exe resolve alguns problemas, mas a execução desse código antigo em novos sistemas operativos parece insegura

O MinGw é uma aposta mais segura. MinGw é acrônimo para "Minimalista GNU para Windows" e está atualizado e inclui ferramentas de make e outras

link

    
por 20.08.2013 / 14:06
1

O código de erro do Windows 0xC0000005 indica uma violação de acesso ou falha de segmentação.

  • A sua instalação do MinGW está corrompida?
  • O seu sistema está configurado corretamente? Alguma configuração do sistema mudou recentemente?
  • Existem problemas de hardware no seu sistema? Talvez seja necessário verificar o disco rígido usando o CHKDSK ou realizar um teste de memória, como Memtest86 + .
por 17.03.2012 / 14:24
0

Eu notei em meus logs de compilação que "SHELL = sh" estava sendo passado para fazer, mesmo que eu esteja na plataforma Windows. Meu Makfile ficou assim:

ifneq (, $ (findstring win, $ (RDI_PLATFORM)))  SHELL = CMD endif

Uma vez eu comentei o ifneq e terminei de começar a trabalhar. Não sei por que a plataforma não foi interpretada corretamente.

    
por 11.11.2014 / 21:50