Używam Make z dystrybucji MinGW. Zawsze działało, ale ostatnio wystąpił następujący błąd:
> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)
Odpowiednia część wygląda następująco:
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)
Nie mam pojęcia, co to powoduje. Zwłaszcza, że zawsze działało idealnie dobrze.
Odpowiedzi:
Zaczynałem też otrzymywać wyjątek:
Może być inny powód, ale ten problem jest spowodowany najwyraźniej, gdy zmienna PATH zawiera nawiasy
(
,)
jak ma to miejsce na Win Vista / 7. Niestety dostępne GNU dla Windows jest beznadziejnie przestarzałe.Mój problem został rozwiązany przez wymuszenie
make
użycia poprawnej powłoki: wstaw następujący wiersz na początku pliku makefile.źródło
C:\Program Files
zeC:\PROGRA~1
iC:\Program Files (x86)
zeC:\PROGRA~2
stałym problemem dla mnie. +1 :-)sh: C:\Program: No such file or directory
jest pierwszy wiersz, który otrzymuję, jeśli nie podamSHELL
zmiennej. Zasadniczo każde wystąpienie „Program Files” na PATH zawiera spację, która nie jest poprawnie usuwana (jeśli chodzi o markę). To nie długość ścieżki, ale spacje powodują ten problem. To wyjaśnia, dlaczego użycie makra bez spacji to naprawiło.Miałem ten problem, gdy dodałem katalog bin Gita do
PATH
zmiennej środowiskowej. Wydaje się, że powodem jest to, że Git jest dostarczany z wersją MSYS i wydaje się, że jest w konflikcie z MinGW (może nie jest to sprzeczne, gdy jest to odpowiednia wersja MSYS i / lub MinGW, ale to tylko zgadywanie).Upewnij się więc, że nie ma (innej) dystrybucji MSYS w twoim
PATH
.źródło
Później do odpowiedzi Norbet P. stwierdziłem, że dodanie:
na górze mojego pliku Makefile naprawiłem ten konkretny problem.
źródło
Ten
make
błąd został naprawiony co najmniej w.
źródło
Używałem GnuWin, dopóki nie zdałem sobie sprawy, że ostatnie wydanie zostało opublikowane 26 listopada 2006 roku . To trochę kiepskie i spowodowało takie problemy, jak widać powyżej. Ustawienie SHELL = C: /Windows/System32/cmd.exe rozwiązuje niektóre problemy, ale uruchomienie takiego starego kodu w nowych systemach operacyjnych wydaje się niebezpieczne
MinGw to bezpieczniejszy zakład. MinGw jest akronimem „Minimalistyczny GNU dla Windows” i jest aktualny i obejmuje markę oraz inne narzędzia
http://sourceforge.net/projects/mingw/files/
źródło
Kod błędu systemu Windows
0xC0000005
wskazuje na naruszenie dostępu lub błąd segmentacji.źródło
Zauważyłem w moich dziennikach kompilacji, że „SHELL = sh” było przekazywane, mimo że jestem na platformie Windows. Mój Makfile wyglądał tak:
ifneq (, $ (findstring win, $ (RDI_PLATFORM))) SHELL = CMD endif
Raz skomentowałem ifneq i koniec, że zaczął działać. Nie jestem pewien, dlaczego platforma nie została poprawnie zinterpretowana.
źródło