MinGW Shell 에서 아래 로그와 함께 모든 명령어가 먹통이 되는 현상을 겪었다.
*** Couldn't reserve space for cygwin's heap (0xXXXXXXXX <0xXXXXXXX>) in child, Win32 error 0
집에서 해보니 잘 되는데, 회사에선 위 로그와 함께 모든 명령어가 먹통이 된다.
구글링 결과, 아래와 같은 해결방법을 얻었고 실행결과 해결할 수 있었다.
msys 에 포함된 dll 파일들의 base address 를 바꾸어주어야 함.
1. rebase 프로그램을 다운받아 msys 의 bin 디렉토리에 복사를 한다.
바이너리: http://repo.or.cz/w/msysgit.git/history/76920dc49da361257cbccb02ea63b3e5357fe353:/bin/rebase.exe
2. 커맨드라인(cmd) 창을 열고 아래와 같이 입력한다.
C:\MinGW\msys\1.0\bin>rebase -b 0x30000000 msys-1.0.dll
(0xXXXXXXXX 는 적당히 찾아서 적으면 된다.)
만약 ReBaseImage Failed with last error = 6 이란 메시지와 함께 실패한다면
cygwin 관련 프로그램을 모두 종료하고 다시 시도한다.
(내 경우는 MinGW Shell 이 열려 있어서 문제가 발생했다.)
3. MinGW Shell 에서 아래를 실행한다.
$ mingw-get install msys-rebase
명령이 성공적으로 실행되면 MinGW Shell 을 닫는다.
4. 탐색기에서 msys 의 bin 디렉토리로 이동하여 dash 를 실행하고 아래와 같이 입력한다.
/bin/rebaseall
만약 에러 메시지가 출력되면 에러 메시지를 보고 적절한 조치를 취해준 뒤 다시 실행한다.
5. /bin/peflagsall 을 입력해준다.
참조 http://azza.tistory.com/152
댓글 없음:
댓글 쓰기