web-dev-qa-db-ja.com

make:割り込み/例外がキャッチされました

MinGWディストリビューションのMakeを使用しています。それは常に働いていましたが、最近私は次のエラーを受け取りました:

> 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)

何が原因かわかりません。特に、それが常に完璧に機能しているためです。

33
orlp

私も例外を受け始めていました:

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

別の理由かもしれませんが、この問題は、Win Vista/7でそうであるように、PATH変数に括弧()が含まれている場合に明らかに発生します。残念ながら、利用可能なGNU for Windowsは絶望的に時代遅れです。

私の問題はmakeに正しいシェルを使用するように強制することで修正されました。メイクファイルの先頭に次の行を挿入してください。

Shell=C:/Windows/System32/cmd.exe
46
Norbert P.

GitのbinディレクトリをPATH環境変数に追加すると、その問題が発生しました。その理由は、GitにはMSYSのバージョンが同梱されており、MinGWと競合しているようです(MSYSやMinGWの正しいバージョンの場合は競合しない可能性がありますが、それは推測にすぎません)。

そのため、PATHに(他の)MSYSディストリビューションがないことを確認してください。

8
Ignitor

Norbert P.の回答に加えて、私は以下を追加していることがわかりました。

PATH=

makefileの先頭にこの問題を修正しました。

3
Mark Tolley

このmakeバグは少なくとも修正されています

GNU Make 3.82
Built for i686-pc-mingw32

3
Armali

最後のリリースが2006に11月26日にポストバックされるまで、私はGnuWinを使用しました。それは少し不自由で、上記のような問題を引き起こしました。 Shell = C:/Windows/System32/cmd.exeを設定するといくつかの問題は解決しますが、新しいオペレーティングシステムでこのような古いコードを実行すると安全ではないように感じます

MinGwの方が安全です。 MinGwは "Minimalist GNU for Windows"の頭字語であり、最新であり、makeおよびその他のツールが含まれています。

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

2
user246954

Windowsエラーコード0xC0000005は、アクセス違反またはセグメンテーション違反を示します。

  • MinGWインストールが破損していますか?
  • システムは適切に構成されていますか?最近システム設定を変更しましたか?
  • システムにハードウェアの問題がありますか? CHKDSKを使用してハードドライブをスキャンするか、 Memtest86 + などのメモリテストを実行する必要がある場合があります。
1
bwDraco