J'utilise Make de la distribution MinGW. Cela a toujours fonctionné, mais récemment, j'ai l'erreur suivante:
> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)
Et la partie respective ressemble à ceci:
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)
Je n'ai aucune idée de ce qui cause cela. Surtout parce que cela a toujours fonctionné parfaitement bien.
Réponses:
Je commençais aussi à avoir une exception:
Peut-être une raison différente, mais ce problème est apparemment dû au fait que la variable PATH contient des parenthèses
(
,)
, comme sur Windows Vista / 7. Malheureusement, la version disponible de GNU pour Windows est désespérément obsolète.Mon problème a été résolu en forçant
make
utilisez le shell correct: insérez la ligne suivante au début de votre makefile.la source
C:\Program Files
avecC:\PROGRA~1
etC:\Program Files (x86)
avecC:\PROGRA~2
résolu le problème pour moi. +1 :-)sh: C:\Program: No such file or directory
est la première ligne que je reçois si je ne passe pas dans laSHELL
variable. En gros, chaque instance de "Program Files" sur PATH contient un espace qui n'est pas échappé correctement (en ce qui concerne make). Ce n'est pas la longueur du chemin, mais les espaces qui causent ce problème. Ceci explique pourquoi l’utilisation d’une macro sans espaces la corrige.J'ai eu ce problème quand j'ai ajouté le répertoire bin de Git au
PATH
variable d'environnement. La raison semble être que Git est livré avec une version de MSYS et que cela semble entrer en conflit avec MinGW (peut-être que ce n'est pas le cas lorsqu'il s'agit de la bonne version de MSYS et / ou de MinGW mais que ce n'est que devinettes).Assurez-vous donc qu’il n’ya pas (d’autre) distribution MSYS dans votre
PATH
.la source
Suite à la réponse de Norbert P., j’ai trouvé que l’ajout:
au sommet de mon Makefile corrigé ce problème particulier pour moi.
la source
Ce
make
bug est corrigé au moins dans.
la source
J'ai utilisé GnuWin jusqu'à ce que je réalise que la dernière version avait été publiée le 26 novembre 2006 . C'est un peu boiteux, et a causé de tels problèmes que vu ci-dessus. La définition de SHELL = C: /Windows/System32/cmd.exe résout certains problèmes, mais l'exécution d'un tel ancien code sur de nouveaux systèmes d'exploitation semble dangereuse.
MinGw est un pari plus sûr. MinGw est l'acronyme de "Minimalist GNU for Windows" et est à jour et comprend la marque et d'autres outils.
http://sourceforge.net/projects/mingw/files/
la source
Le code d'erreur Windows
0xC0000005
indique une violation d'accès ou une erreur de segmentation.la source
J'ai remarqué dans mes journaux de compilation que "SHELL = sh" était transmis, alors que je suis sur la plate-forme Windows. Mon Makfile ressemblait à ceci:
ifneq (, $ (findstring win, $ (RDI_PLATFORM)))) SHELL = CMD fin si
Une fois, j'ai commenté le ifneq et la fin, il a commencé à fonctionner. Vous ne savez pas pourquoi la plate-forme n'a pas été interprétée correctement.
la source