31

Я использую 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)

Я понятия не имею, что вызывает это. Тем более, что он всегда работал отлично.

7 ответов7

43

Я также начал получать исключение:

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

Может быть другая причина, но эта проблема, очевидно, возникает, когда переменная PATH содержит круглые скобки ( , ) , как это происходит в Win Vista/7. К сожалению, доступный GNU для Windows безнадежно устарел.

Моя проблема была исправлена, заставив make использовать правильную оболочку: вставьте следующую строку в начало вашего make-файла.

SHELL=C:/Windows/System32/cmd.exe
8

У меня была такая проблема, когда я добавил каталог bin в Git в переменную окружения PATH . Кажется, причина в том, что Git поставляется с версией MSYS, и это, кажется, конфликтует с MinGW (возможно, это не конфликтует, когда это правильная версия MSYS и / или MinGW, но это только предположение).

Поэтому убедитесь, что в вашем PATH нет (другого) дистрибутива MSYS.

3

Далее к ответу Норбет П. я обнаружил, что добавление:

PATH=

к началу моего Makefile исправил эту конкретную проблему для меня.

3

Эта make ошибка исправлена , по крайней мере в

GNU Make 3.82
Built for i686-pc-mingw32

,

2

Я использовал GnuWin, пока не понял, что последний релиз был опубликован 26 ноября 2006 года . Это немного неубедительно, и вызвало такие проблемы, как видно выше. Настройка SHELL = C:/Windows/System32/cmd.exe действительно решает некоторые проблемы, но запуск такого старого кода на новых операционных системах кажется небезопасным

MinGw - более безопасная ставка. MinGw является аббревиатурой от "Minimalist GNU для Windows" и является современным и включает в себя make и другие инструменты

http://sourceforge.net/projects/mingw/files/

1

Код ошибки Windows 0xC0000005 указывает на нарушение прав доступа или ошибку сегментации.

  • Ваша установка MinGW повреждена?
  • Ваша система настроена правильно? Изменились ли недавно системные настройки?
  • Есть ли проблемы с оборудованием в вашей системе? Вам может понадобиться отсканировать жесткий диск с помощью CHKDSK или выполнить тест памяти, такой как Memtest86+.
0

Я заметил в моих журналах компиляции, что "SHELL = sh" передавался для создания, хотя я на платформе Windows. Мой Макфайл выглядел так:

ifneq (, $ (победа findstring, $ (RDI_PLATFORM))) SHELL = CMD endif

Однажды я прокомментировал ifneq и в конце он начал работать. Не уверен, почему платформа не была правильно интерпретирована.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .