전산쟁이의 카피질

뒤로 검색

wxWidgets 모놀리틱으로 컴파일 하기. 32비트에서...

2013/05/28 04:56

모놀리틱(MONOLITHIC=1)으로 옵션을 줘서 컴파일하면...
모놀리틱이란. wxWidgets를 컴파일해서 나오는 dll이 하나로 떨궈지는 겁니다. 그니까 wxWidgets라이브러리를 사용하는 프로그램을 짠 다음에 모놀리틱으로 컴파일된 wxWidgets dll 하나만 추가로 더해서 배포를 하면 깔끔하게 끝나는 거죠. 대신 wxWidgets의 모든 라이브러리가 포함되어 있어서 용량이 좀 커집니다.
반대로 모놀리틱을 해제(MONOLITHIC=0)해서 컴파일하면 wxWidgets 라이브러리가 여러개의 dll로 나옵니다. 그래서 배포할때는 자기가 사용한 dll만 추려서 배포할 수 있습니다. 다만 자기가 쓴 wxWidgets 라이브러리가 어느 dll에 들어 있는지 정확하게 알아야 하는 부담이 있지만, 배포 용량은 필요한 dll만 하니깐 줄어들겠죠...

관리자 입장에는 모놀리틱으로 하는게 편하다고 생각됩니다.


그래서 모놀리틱 컴파일을 시도해 봤습니다.

윈도7-32bit 메모리 6기가(실제 인식은 약 3기가 정도만 되죠... 32bit 운영체제라서...)에서 메모리 부족 에러가 발생합니다.
(64비트 윈도우에서는 문제없이 될지도 모르겠습니다....)

장난하냐... ㅡㅡ;;;;; 내가 지금 쓰는게 32비트 윈도우 운영체제에서 사용할 수 있는 최대 메모리란 말이다....

그래서 인터넷을 뒤졌더니... MinGW(이하 민지)의 버그랍니다. 정확하게는 링커지요(ld.exe)...

메시지는 다음과 같이 납니다.
========================================================================================
bin/ld: final link failed: Memory exhausted
collect2: ld returned 1 exit status

make: *** [자기 패스/wxmsw28d_core_gcc_custom.dll] Error 1
=========================================================================================



헐... 그래서 해결책을 또 검색했죠... 처음에는 non monolithic 으로 컴파일 하랍니다. 그게 할소리냐?? ㅡㅡ;;;

그래서 더 검색을 해봤더니...

http://sourceforge.net/projects/tdm-gcc/?source=dlp 에서 TDM-GCC MinGW Compiler를 설치하면 된답니다.



켁... gcc 컴파일러만 바꿔주면 되는게냐??? 라고 생각했습니다.

그래서 다운로드 받아서 실행해봤더니... 민지까지 다시 깔리더군요.

(혹시나 싶어서 패스 걸어 놓은거 예전 민지 패스를 지우고...)


그래서 지금 컴파일 중입니다.

잘 되면 이어서 마저 쓰겠습니다.

Tags

gcc, memory exhaust, monolithic, wxwidgets, 메모리 부족, 민지
이 페이지는 Textcube 1.10.0 : beta 1 로 구동됩니다 데스크탑 화면