2012-03-29 24 views
5

は、私はそれを解決できる方法勝利8、cygwinのヒープ障害

*** Couldn't reserve space for cygwin's heap (0x150000) in child, cygheap, Win32 error 0 
      0 [main] make 4336 sync_with_child: child 2968(0x120) died before initialization with status code 0x1 
     308 [main] make 4336 sync_with_child: *** child state waiting for longjmp 

(私はのcygwin.dllを持っている)のmakeでコンパイル次のエラーを取得しますか? おかげ

+0

どのプログラムをコンパイルしますか?こんにちは世界? – karlphillip

+1

no.whyそれは重要ですか?私はそれのためのmakefileを持っています。そしてそれはwin7でうまくいきます。 – Yakov

+0

重要でない場合は、私はそれを求めていないでしょう。私はこれがランダムな問題かどうか、あるいはそれが一貫して起こるものか、できるだけ小さなアプリケーションで再現できるものかどうかを判断しようとしています。 Hello Worldアプリケーションをコンパイルしてもこのエラーは発生しないと言っていますか?あなたはこれをテストしましたか? – karlphillip

答えて

7
  • システムを再起動します:この問題に文句

ほとんどのユーザーは、それが再起動後に消え報告しました。 Windows 7を使用している場合はBerndPからthis threadにメッセージをチェックし、Windowsで仮想メモリの設定を調整するためのヒントがあります。

  • は、Cygwinのに干渉するいくつかのソフトウェアされることがあります。

This postは、Cygwinのランダム問題の興味深い議論をもたらします。 BLODA listには、Cygwinで異常な障害や問題を引き起こすことが知られているアプリケーションのリストがあります。

EDIT

のWindows 8が正式にリリースされ、そうdon't expect Cygwin to work on itされていません。

Cygwinはこれを書いている時点のように、これには、Windowsのすべての近代的な32ビットバージョンで実行することが期待される

、Windows 2000では、Windows XPでは、Windows Server 2003では、Windows Vistaでは、Windows Server 2008では、Windows 7の64ビット版Windows(XP/2003/Vista/2008/7/2008 R2)のWOW64 32ビット環境をサポートしています。

+1

はい、再起動は私のWindows 8マシンでこの問題を解決しました。私は16GbのRAMをインストールしていて、おそらく仮想メモリの設定と同期していませんでした... –

+1

32GBのRAMを搭載したWindows 8.1の64ビットマシンでリブートしても一度も役に立ちませんでした。リベースの修正はうまくいった。 – simich

1

私はEclipseで作業しており、MinGW + YagartoをWindows 8で使用しています。再起動は何もしませんでした。

仮想メモリを拡張して問題を解決しましたが、これはもともと896Mbに設定されていましたが、3000Mbではなく正常に動作しています。

12

この問題が発生したばかりで、問題の原因となっていたmsys-1.0.dllをリベースするように指示されました。

C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\x64\ReBase.Exe 

マイクロソフトのプラットフォームSDK available hereのV7.1(およびおそらく他のバージョン)の一部である:

具体的に、私はREBASE.EXEツールを使用します。

は、DLLのバックアップを取り、その後、プラットフォームSDKのコマンドプロンプト内で、このコマンドラインを試してみてください。

rebase -b 0x30000000 /path/to/msys-1.0.dll 

これが私のために問題を解決しました。

私の推奨する仮想メモリの設定は約3GBに設定され、実際に割り当てられた仮想メモリは6GBでした。

+0

それは私のためのトリックでした。どうもありがとう。 – ereOn

+1

私は最終的にリベース修正を試してみる前に、この問題をかなり抱えていました。私はリベースアドレスの重要性を十分に理解していませんが、それは魅力的に機能しました。私はWindows 8.1 64ビットで別のものを入力しました。私はCygwinやそれに類するものがインストールされていないので、git自身のrebaseを使いました。参考までに、ここで私が修正について読んだところです:http://jakob.engbloms.se/archives/1403。 – simich

0

この問題は、gccの互換モードを変更することで解決できます。しかし、gcc.exeを呼び出すときに複数の確認を避けるためにはスクリプトを管理者として実行する必要があります