태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

lbjcom's blog

이번에는 윈도우에서 Codeblocks와 wxWidget을 이용한 GUI프로그래밍 환경 구축 방법입니다.

참고한 자료로는
[1] http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows
[2] http://kldp.org/node/70327
입니다.

먼저 윈도우에서 gcc 및 make를 사용할 수 있도록 minGW를 설치해야 합니다.
http://prdownloads.sourceforge.net/mingw/MinGW-5.1.3.exe
로 가셔서 minGW를 받으신 후에 설치를 합니다. 설치하실 때에는 g++ compiler와 MinGW make 만 선택하시면 됩니다.

설치가 끝나면 wxWidget을 설치해야 합니다.
2.8.6 버전이 나왔습니다.
http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.6.zip
로 가셔서 다운받으신 후에 적당한(C:\wxMSW-2.8.6) 폴더에 압축을 풉니다.
http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.4.zip
로 가셔서 다운받으신 후에 적당한(C:\wxMSW-2.8.4) 폴더에 압축을 풉니다.


이제 wxWidget을 환경에 맞게 컴파일을 해야 합니다.
먼저 minGW 실행을 위해서 minGW가 설치된 경로에 path를 환경변수로 지정해 줍니다.
c:\mingw\bin
c:\mingw\mingw32\bin

을 지정하면 됩니다.
그리고 c:\wxMSW-2.8.4\build\msw 로 가셔서 커맨드 라인에서 다음 명령을 입력합니다.
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1
위 명령을 수행하는데는 시간이 좀 걸린다고 합니다^^;
수행이 정상적으로 완료되면
Creating library file: ..\..\lib\gcc_dll\libwxmsw28u.a
와 같은 메시지를 볼 수 있습니다.

이제 codeblock를 설치할 차례입니다. 현재 nighty build만 존재하는데 (매일매일 업데이트가 됩니다^^)
http://www.codeblocks.org/ 로 가셔서 forum을 보시면 nightly build 게시판이 존재합니다. 여기서 windows용 버전을 받으셔서 아무 곳에나 압축을 풀어 놓으시면 됩니다 .위의 과정을 통해서 minGW와 wxWidget이 설치된 상태이기 때문에 추가적으로 라이브러리를 받으실 필요는 없을 겁니다.

codeblocks의 압축을 적절한 곳에 풀어 놓으신 후에 실행하시면 되는데, 이후의 과정은
를 참고하셔서 하시면 됩니다. [2] (사실 처음 과정부터 이 자료를 보고 해도 됩니다. 차이점은 wxWidget을 zip버전을 받는지, exe버전을 받는지 입니다.)

이 과정 중에 파일을 찾을 수 없거나 하는 경우에는 (주로 헤더파일이나 라이브러리 관련) 해당 경로를 codeblocks의 컴파일러 세팅(Setting -> Compiler and Debugger -> Search Directories)에서 추가해 주시면 됩니다.

참고로 빌드 과정에서
ld: crt2.o: No such file: No such file or directory
와 같은 오류가 발생할 수 있는데, codeblocks 포럼에서 읽은 글에 의하면 비스타의 경우에는
crt2.o, crtbegin.o, crtend.o
파일을 프로젝트가 있는 폴더에 카피해 주어야 한다고 합니다. crt2의 경우에는 C:\MinGW\lib 에 있고, 나머지 파일들은 C:\MinGW\lib\gcc\mingw32\3.4.2 에 존재합니다.

프로젝트를 빌드한 후에 실행하면 프로그램이 실행되는 것을 볼 수 있습니다+_+


크리에이티브 커먼즈 라이선스
Creative Commons License

*Ubuntu 7.04 feisty 기준입니다.

CodeblockswxWidget 설치는 각각 홈페이지에서 다운받아서 설치할 수 있습니다.
Codeblocks의 경우 현재 nightly build만 존재하기 때문에, forum의 관련 게시판에서 받아서 설치할 수 있습니다. wxWidget의 경우 Ubuntu에서의 설치와 관련된 안내가 자세히 나와 있으므로 따라 하면 됩니다.

두가지가 모두 설치가 된 이후에, 몇 가지 설정을 해야 합니다. 먼저  /usr/lib/wx/include/gtk2-unicode-release-2.8/wx 에 가서 setup.h 를   /usr/include/wx-2.8/wx 의 경로로 카피해 줍니다. (이 경로는 wxWidget의 버전에 따라 다를 수 있습니다.)


이제 Codeblocks를 열어서 'File -> New -> Project... -> wxWidget project' 를 선택하신 후에 나머지 옵션들을 지정해 줍니다.
프로젝트 생성 후에 빌드를 할려고 하면
#error "No Target! You should use wx-config program for compilation flags!"
와 같은 오류가 날 것입니다. 이 때, Codeblocks 메뉴에서 'Project -> build option' 에 가셔서 'Compiler setting' 탭의 'Other options'를 선택합니다. 보시면
`wx-config --cflags`

가 있는데, 이 부분을 `wx-config --cppflags` 혹은 `wx-config --cxxflags` 로 바꿔 줍니다.

이후에 다시 빌드하면 'Undefined reference to: 함수이름' 과 같은 오류가 발생합니다. wxWidget의 라이브러리와 링크가 되지 않아서 나는 오류인데
'Project -> build option' 에서 'Linker settings' 을 보시면
`wx-config --libs`

와 같이 되어 있습니다. 이 부분을 `wx-config --libs std` 로 바꿔 줍니다. wx-config의 옵션에 보면 -libs만 지정하고 import할 라이브러리를 명시적으로 지정하지 않으면 std가 사용된다고 하는데 std가 없으니 링크되지 않는 것 같습니다. std를 추가해주고 다시 빌드를 하면 정상적으로 동작하는 것을 확인할 수 있습니다.

이제 처음으로 wxwidget을 이용해서 빌드를 성공했습니다. 제대로 된 프로그램을 만들려면 삽질을 많이 해야 겠네요^^;


Reference
[1] http://justlinux.com/forum/showthread.php?t=105554
[2] wxconfig --help
크리에이티브 커먼즈 라이선스
Creative Commons License

1 
BLOG main image
lbjcom's blog
봉진이의 블로그입니다:)
by lbjcom

카테고리

분류 전체보기 (230)
Diary (72)
My Precious... (13)
Talk (101)
Pictures (15)
Thinking... (24)
Works (4)

달력

«   2008/07   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Statistics Graph
tistory!get rss Tistory Tistory 가입하기!
POWERED BY PUBLICONS.DE