Я использую Make из дистрибутива MinGW. Это всегда работало, но недавно я получил следующую ошибку:
> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)
И соответствующая часть выглядит так:
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)
Я понятия не имею, что вызывает это. Тем более, что он всегда работал отлично.
Ответы:
Я также начал получать исключение:
Может быть другая причина, но эта проблема, по- видимому возникает , когда переменная PATH содержит круглые скобки
(
,)
как это делает на Win Vista / 7. К сожалению, доступный GNU для Windows безнадежно устарел.Моя проблема была исправлена путем принудительного
make
использования правильной оболочки: вставьте следующую строку в начало вашего make-файла.источник
C:\Program Files
сC:\PROGRA~1
иC:\Program Files (x86)
сC:\PROGRA~2
исправила проблему для меня. +1 :-)sh: C:\Program: No such file or directory
есть первая строка, которую я получу, если не передамSHELL
переменную. По сути, каждый экземпляр «Program Files» в PATH содержит пробел, который не экранирован должным образом (что касается make). Это не длина пути, а пробелы, которые вызывают эту проблему. Это объясняет, почему с помощью макроса без пробелов это исправлено.У меня была такая проблема, когда я добавил каталог bin в Git в
PATH
переменную окружения. Кажется, причина в том, что Git поставляется с версией MSYS, и это, кажется, конфликтует с MinGW (возможно, это не конфликтует, когда это правильная версия MSYS и / или MinGW, но это только предположение).Поэтому убедитесь, что в вашем (нет) дистрибутиве MSYS нет
PATH
.источник
Далее к ответу Норбет П. я обнаружил, что добавление:
к началу моего Makefile исправил эту конкретную проблему для меня.
источник
Эта
make
ошибка исправлена как минимум в,
источник
Я использовал GnuWin, пока не понял, что последний релиз был опубликован 26 ноября 2006 года . Это немного неубедительно, и вызвало такие проблемы, как видно выше. Настройка SHELL = C: /Windows/System32/cmd.exe действительно решает некоторые проблемы, но запуск такого старого кода на новых операционных системах кажется небезопасным
MinGw - более безопасная ставка. MinGw является аббревиатурой от «Minimalist GNU for Windows» и является современным и включает в себя make и другие инструменты
http://sourceforge.net/projects/mingw/files/
источник
Код ошибки Windows
0xC0000005
указывает на нарушение прав доступа или ошибку сегментации.источник
Я заметил в моих журналах компиляции, что "SHELL = sh" передавался для создания, хотя я на платформе Windows. Мой Макфайл выглядел так:
ifneq (, $ (победа findstring, $ (RDI_PLATFORM))) SHELL = CMD endif
Однажды я прокомментировал ifneq и в конце он начал работать. Не уверен, почему платформа не была правильно интерпретирована.
источник