윈도우

Code::Blocks + wxWidgets (윈도우에서)

ForceCore 2009. 2. 3. 12:30
http://kldp.org/node/70327
이 글을 컨닝했다.

윈도우와 리눅스 양 쪽에서 동일한 개발 환경을 갖추려고 한다.
그래서 Code::Blocks를 선택했고, wxWidgets를 GUI환경을 빌드하는데 사용하기로 함.

http://www.codeblocks.org/
여기서 최신 버전을 받는다.
필자는 버전 8.02, mingw가 파일 이름에 적혀서, 컴파일러도 딸려 오는 것을 선택했다.
** 나중을 생각하면 mingw는 따로 받는 것이 좋다. 컴파일러만 계속 버전업 할 수 있도록!! 

** 일거 같았으나 안정성이 최고임 ㄱ- 같이 번들되는걸로 가기 추천 ㄷㄷ
** 컨닝 문서를 잘 읽어보면, gdb는 따로 받아야 함을 알 수 있다.
Code::Blocks는 따로 설치한 MingW도 잘 감지한다.

설치 옵션을 잘 보면 wxSmith도 딸려온다. 즉... GUI RAD tool도 딸려온다는 것이다.
wxWidgets도 딸려오나? 그건 아닌 듯.
cygwin이 깔려있고 거기 gcc도 있으면, Code::Blocks가 감지하긴 하는데, cygwin1.dll이런 것이 꼬이게 될 확률이 높아 필자는 시그윈 컴파일러만은 기피하기로 했다. 차라리 비주얼 스튜디오 컴파일러를 쓰겠다고 하는 것이 낫지 ;;;

우선 실행부터 해보자.


이렇게 생겼다. 꽤나 귀엽고 깔끔하게 생겼다.

프로젝트가 있고 workspace가 있다.
workspace는 visual studio 2008로 치자면, solution 파일이라고 할 수 있고,
project는... 프로젝트 맞다 ㅡ,.ㅡ;
workspace를 따로 저장해두면, 여러 하위 프로젝트를 굴리는 프로젝트를 만들 수 있는 것이다.

OpenGL 플젝, C 플젝 이런거 해보면, 기본적인 삼각형 뱅뱅 도는 화면, Hello World프로그램을 preset으로 약간 주고 시작한다. 귀여운걸?

이제 메인디쉬로 가보자. Win32 GUI application도 개발은 가능한데, 그렇게 해서는 리눅스에서도 돌릴 수가 없다. 그러므로, cross platform 환경인 wxWidgets 플젝으로 만들어야 한다.

그러나... Code::Blocks에 wxWidgets라이브러리가 딸려오진 않는다.

http://www.wxwidgets.org/
여기서 받으라.
필자는 현재 안정 버전인 2.8.x를 기준으로 이 글을 쓰고 있다. Code::Blocks에서도 지원하고 있고.
윈도우에서는, wxMSW 를 받으면 윈도우용이다. 일단은 setup파일이니 받아 설치하면 된다.

새 프로젝트를 시작해서 wxWidgets플젝 위저드를 따라가다 보면, wxWidgets를 못 찾아서, 찾아달라고 할 것이다.


여기서 ...을 누르면 설정 가능.
잘못했으면, 나중에 메뉴에서도, Settings -> Global Variable에서 wx관련을 찍고 설정해주면 된다...

필자의 경우는 이렇게 되었다:


디폴트 대로 설치했다면 이럴 것이다.

잘 나가다가 난관이 또 생긴다.

A matching Debug configuration cannot be found in the wxWidgets directory tou specified. This means that Debug target of your project will not build.
Are you sure you want to continue with these settings?

에러 메지시로 구글을 검색해보면... wxWidgets를 적절히 또 빌드해야 하는 step이 있기 때문이다. 인스톨러 돌렸다고 다가 아니다.
http://wiki.wxwidgets.org/CodeBlocks_Setup_Guide
http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef
필자와 같은 설정을 해야 할 때는 이 위키대로 하라고 한다. 둘 다 위키인데, 필자는 아래 것을 선택.

우선은 여기를 path 등록 해줘야 한다:
C:\Program Files\CodeBlocks\MinGW\bin
그 방법은 여기 있다: http://forcecore.tistory.com/280

path등록이 됐으면, C:\wxWidgets-2.8.9\build\msw 여기 들어가서
> mingw32-make.exe -f makefile.gcc clean
실행하면 clean될테고...

make 옵션이 중요한데 orz
mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1
MingW32에서는 이렇게 하길 권장한다고 한다.
지금 이 설정을 잘 외워놓아야 한다. 그래서, 이 설정대로 프로젝트 위저드의 관련 폼을 채워야만 한다.


:S... 컴파일에 시간이 오래 걸린다.

하지만 이건 release build였으니, 이번에는 debug빌드도 해야 한다.
다시 clean하고 이번엔 release만 debug로 바꿔 컴파일.

C:\wxWidgets-2.8.9\lib\gcc_dll
debug컴파일 명령어를 내리기 전에 위 폴더를 열어보라. 그러면, ~~~d로 끝나는 파일이 생성되는 것을 볼 수 있다. 이것들이 debug용 dll들이다.
.........
.........
시간을 들이면, 모든 조합 = wxWidgets Library Settings의 가능한 조합수 = 8가지 종류를 다 생성할 수 있다. 이 과정이 귀찮으면, wxPack을 다운받아 설치하면 땡임.