MinGW/MSYS 에서 *** Couldn't reserve space for cygwin's heap, Win32 error 0 문제 해결하기

32 비트 윈도7 에 MinGW 패키지를 설치해서 사용하다가, 어느날 갑자기

*** Couldn't reserve space for cygwin's heap, Win32 error 0

에러가 발생하면서 ls 같은 binutils 를 사용할 수 없게 되었다. 일시적인 오류인가 했는데, 전혀 달라지지 않았다. 그래서 구글신께 물어보았다.

이 문제로 고통받는 것은 나뿐만이 아니었다. 방법도 여러가지가 있었다. 시스템을 새로 부팅하라는 말도 있었고, 윈도 7의 가상 메모리 설정을 바꾸라는 말도 있었지만, 아무것도 문제를 고치지는 못했다.

계속해서 방법을 찾다가, 이 문제는 msys-1.0.dll 의 베이스 주소가 충돌하기 때문이라는 설명과 함께 이 베이스 주소를 바꾸면 된다는 해결책을 찾았다. 실제였다. 이 방법으로 해결했다.

방법은 간단하다. msys-1.0.dll 이 설치되어 있는 디렉토리로 이동하자. 보통은 x:\MinGW\msys\1.0\bin 이다.

그 디렉토리에서 다음을 실행하자.

rebase -b 0x50000000 msys-1.0.dll

베이스 주소 0x50000000 은 고정값이 아니다. 필요하다면 다른 값으로 바꾸어도 된다. 그리고 만일 rebase.exe 가 없다면 다음에서 받자.


해당 파일은 bin_rebase.exe 로 저장이 되니, rebase.exe 로 바꾸자.

그리고, rebase 를 실행할 때 msys-1.0.dll 을 이용하는 프로그램이 실행되고 있으면 안된다. 예를 들어 sh.

참조 : http://jakob.engbloms.se/archives/1403

댓글

이 블로그의 인기 게시물

토렌트: < 왕좌의 게임 > 시즌 1 ~ 시즌 8 완결편 마그넷

토렌트: NGC < 코스모스 > 우리말 더빙 전편(1편~13편) 마그넷

토렌트: < 스타워즈 > Ep.1 ~ Ep.6 마그넷