MinGW/MSYS 에서 *** Couldn't reserve space for cygwin's heap, Win32 error 0 문제 해결하기
32 비트 윈도7 에 MinGW 패키지를 설치해서 사용하다가, 어느날 갑자기
에러가 발생하면서 ls 같은 binutils 를 사용할 수 없게 되었다. 일시적인 오류인가 했는데, 전혀 달라지지 않았다. 그래서 구글신께 물어보았다.
이 문제로 고통받는 것은 나뿐만이 아니었다. 방법도 여러가지가 있었다. 시스템을 새로 부팅하라는 말도 있었고, 윈도 7의 가상 메모리 설정을 바꾸라는 말도 있었지만, 아무것도 문제를 고치지는 못했다.
계속해서 방법을 찾다가, 이 문제는 msys-1.0.dll 의 베이스 주소가 충돌하기 때문이라는 설명과 함께 이 베이스 주소를 바꾸면 된다는 해결책을 찾았다. 실제였다. 이 방법으로 해결했다.
방법은 간단하다. msys-1.0.dll 이 설치되어 있는 디렉토리로 이동하자. 보통은 x:\MinGW\msys\1.0\bin 이다.
그 디렉토리에서 다음을 실행하자.
베이스 주소 0x50000000 은 고정값이 아니다. 필요하다면 다른 값으로 바꾸어도 된다. 그리고 만일 rebase.exe 가 없다면 다음에서 받자.
해당 파일은 bin_rebase.exe 로 저장이 되니, rebase.exe 로 바꾸자.
그리고, rebase 를 실행할 때 msys-1.0.dll 을 이용하는 프로그램이 실행되고 있으면 안된다. 예를 들어 sh.
참조 : http://jakob.engbloms.se/archives/1403
*** 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
댓글
댓글 쓰기