MS-Windows환경의 Code::Blocks에서 wxWidgets 사용하기

codebank의 이미지

(본 내용이 강좌가 되지는 못하겠지만 특별히 쓸곳이 없어서 이곳에 글을 올립니다.)

예전에 KLDP에 다음과 같은 강좌가 있었습니다.

http://kldp.org/node/70327 (MinGW, wxWidget, Code::Blocks를 이용한 C/C++ IDE 환경 구축)

최근에 wxWidgets에 관심이 생겨서 위 게시물을 참고해서 wxWidgets를 설치하려고 시도했는데
이상하게 이런 저런 문제에 부딪혀서 몇 일을 허송세월 보냈습니다.

1. wxWidgets은 ' '을 인식하지 못하는 문제
프로그램을 한곳에 모으는 습관이 있어서 기존 Code::Blocks가 설치되어있던 경로인
C:\Program Files\CodeBlocks 아래에 wxWidgets를 설치했다가 컴파일시에 ' '를 인식하지
못하는 문제로 설치된 wxWidgets를 삭제.
C:\wxWidgets에 다시 설치
2. 최종 결과물 실패
mingw32-make를 이용해서 컴파일까지는 이상없이 완료되었지만 이상하게 최종 결과물인
...custom.dll인가하는 결과물을 만드는 과정에서 수차례 실패.
메모리 사용량이 2.5G까지 치솟아 올라가다가 결국 실패.
MS-Windows XP, 7 (64Bits. 혹시 64Bits 라면 메모리문제에 자유로울까봐...) 환경에서
30여분 가까이 투자를 했지만 결과는 같은 결론.
결국 여기저기 찾아봤지만 개발자의 '우리는 gcc3에서만 테스트해봤다.'라는 말을 보고
포기. (현재 MinGW는 4.x버전 이상으로 배포중)

이런 저런 문제로 몇 일을 고생만하고 마지막단계에서 실패하는 결과만 나오니 의욕이 사라져
갔습니다.
그러다가 우연히 아래 문서를 보게 되었습니다.

http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef

내용은 MS-Windows 상에서 wxWidgets를 설치하는 방법을 적어놓았습니다.
방법은 두가지인데
1. http://www.wxwidgets.org/ 에서 직접 wxWidgets의 소스를 받고 컴파일 하는 방법
2. http://wxpack.sourceforge.net/ 에서 컴파일 되어있는 결과물을 받아 이용하는 방법
로 되어있습니다.
첫 번째 방식이 제가 사용한 방법인데 지금 여기서 문제가 발생함으로 두번째 방법을
이용하기로 방향을 바꿔보기로 합니다.

download에서 파일을 받고 기본으로 설치합니다.
컴파일은 필요없고 설치가 끝나면 곧바로 Code::Blocks에서 wxWidgets를 프로젝트를 만들때
자동으로 설정을 바꿔주네요.
그래도 혹시 모르니 일단 기존의 wx 글로벌 변수를 지정해줍니다.(사실 없어도 될 것 같지만요.)

[Setting]->[Global variables]
Current Variable에서 [New]버튼을 누릅니다.
'wx'를 입력
아래 [base]항목 옆의 [...]버튼 누름.
wxWidgets가 설치된 디렉토리 지정 (기본적으로는 C:\SourceCode\Libraries\wxWidgets2.8 에 설치됩니다.)

이제 wxWidgets가 사용가능한지 확인해 보면 됩니다.
확인방법
1. 새로운 프로젝트 생성. (wxWidgets Project선택)
2. 설치된 wxWidgets는 2.8.11입니다.
3. 적당한 곳에 프로젝트를 만듭니다.
4. 프로젝트를 만들때 [Next]누르다보면 wxWidgets location을 물어보는 곳이 나옵니다.
설치된 디렉토리(위의 C:\SourceCode\Libraries\wxWidgets2.8)를 지정해줍니다.
5. 계속 진행하다보면 wxWidgets Library Settings부분이 나옵니다. 여기서
[v] Use wxWidgets DLL, [v]wxWidgets is built as a monolithic library
[v] Enable unicode에 모두 선택을 해줍니다.
(wxPack은 UNICODE, MONOLITHIC이 기본으로 선택되어있고 DLL을 사용합니다.)
만일 직접 코딩을 작성한다면 [] Create Empty Project를 선택하시면 됩니다.
Create Empty Project를 선택하지 않으면 기본틀 (Dialog base or Frame base)을
가진 환경(.cpp, .h)를 제공합니다. (이부분은 Visual Studio를 사용해보신분이라면 다 아실듯.)
6. 컴파일을 하고 실행을 하면 됩니다.

프로그램을 만들어보고 About을 확인해보시면 wxWidgets가 어떤 형태로 컴파일 되어있고 어떤 버전인지
확인이 가능합니다. (제가 설치한 버전은 wxWidgets 2.8.8-Windows-Unicode build 로 나오네요.)

혹시나 해서 테트리스 소스를 작성해서 확인을 해보니(위의 Create Empty Project 선택) 잘 되네요.
환경이 궁금하신분은 [Project]->[Build options...]->[Search directories]에서 확인 가능합니다.
Global 변수도 있고 Debug, Release별로 환경이 다르니 확인해보시기 바랍니다.

테트리스 소스는

http://zetcode.com/tutorials/wxwidgetstutorial/

위 Tutorial의 마지막에 있는 것을 따라했습니다.

P.S. : Ubuntu의 경우 wxWidgets 개발 라이브러리만 설치하면 되니 신경을 안썼는데 MS-Windows에서는
그게 쉽지가 않아서 힘드네요.

한줄 요약
wxPack ( http://wxpack.sourceforge.net/ )을 설치하면 됩니다.

Forums: 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.