MinGW, wxWidget, Code:Blocks를 이용한 C/C++ IDE 환경 구축

misari의 이미지

MinGW, wxWidget, Code:Blocks를 이용한 C/C++ IDE 환경 구축

지은날 : 2006년 5월 16일 판올림 : 2006년 5월 25일 지은이 : 이민우

필자는 십여년간 VC++를 이용하여 윈도우 응용프로그램을 개발해 왔다. 그러나 리눅스에 관심을 갖게 되면서 오픈 소프 프로젝트들에도 관심을 갖게 되었고, 사회 공용 자원들에 대한 배타적인 소프트웨어들에 대한 대안을 찾는게 취미가 되었다.

리눅스에서는 이런 오픈 소스 프로젝트들이 많이 활성화 되었지만, 윈도우에서는 여전히 배타적 라이센스를 갖는 상용 프로그램들이 널리 사용되는 것에 대해서 안타까운 생각을 갖고 있으며, 특히 윈도우 응용 프로그램을 개발하기 위해선 Visual Studio에 전적으로 의존할 수 밖에 없는 상황을 개척해 보고자, 여러 가지 방법을 찾던 중, Eclipse + CDT + MinGW + wxWidget을 이용한 방법을 시도해 보았으나, Eclipse가 자바 기반으로 동작되다 보니 유용하고 뛰어난 기능이 많음에도 불구하고, 너무나 많은 메모리를 차지하고 시스템의 전반적인 성능을 매우 떨어뜨리는 상황을 극복할 뚜렸한 대안이 없어, 새로운 방법을 찾게 되었다. 그 유력한 대안이 바로 이 글에서 다루고자 하는 것이다.

이 방법은 윈도우 뿐만 아니라 리눅스, 매킨토시에서도 적용이 가능하다. 리눅스에서 구축 방법은 이 문서의 마지막에서 다루겠다.

IDE 구축에 필요한 패키지들

? MinGW 컴파일러 : 윈도우용 컴파일러(gcc, make, binutils)
? wxWidget : GUI 라이브러리
? Code::Blocks : 통합 개발 환경

설치 전 요구 사항 먼저 IDE를 설치할 기본 디렉토리를 만든다. 필자의 경우, C:\IDE에 만들었다. 이 디렉토리는 문서 전체에 걸쳐 로 대체되어 표시된다.

1. MinGW 설치

Code::Blocks 는 MinGW를 포함한 배포판과 순수 Code::Blocks 배포판을 제공한다. 전자의 경우, MinGW를 따로 설치할 필요가 없으나, 필자는 패키지별 독립성을 훼손하지 않기 위하여 각 패키지별로 별도로 설치하였다.

? MinGW 내려받기 사이트에서 최신의 MinGW 파일을 내려받아서 밑에 설치한다.
? 내려받기 주소는 http://prdownloads.sf.net/mingw/MinGW-5.0.2.exe?download 이다.
- 여러가지 파일들이 있으나, MinGW-5.0.2.exe 에 우리가 필요한 대부분의 파일들이 들어있다.
? 내려받은 MinGW-5.0.2.exe 프로그램을 저장할 임의의 폴더를 하나 만든 후, 그 곳에 이 파일을 저장한다.
? 프로그램을 실행하면, 압축되어 포함된 각종 패키지들이 압축 해제된다.
- “MinGW-5.0.2.exe”를 실행하고, 설치 옵션에서 "Custom"을 선택하고,
- "MinGW base tools", "g++ compiler", "MinGW Make" 구성 요소를 선택한다.
- 설치 디렉토리에 \MinGW를 선택한 다음, 나머지는 설치 과정에 따른다.

이전 버전의 MinGW에서는 gdb가 포함되어 있었으나, MinGW-5.0.2에는 gdb가 포함되어 있지 않다. 따라서 gdb를 내려받아 MinGW가 설치된 디렉토리에 설치하여야 한다.
? 내려받기 주소는 http://prdownloads.sf.net/mingw/gdb-6.3-2.exe?download 이다.
- 설치 화면에서 설치 디렉토리에 \MinGW 를 선택하고, 나머지는 설치 과정에 따른다.

? 성공적으로 설치가 끝나면 PATH 환경 변수에 다음 디렉토리를 등록해 줘야 한다.
- "제어판" -> "시스템" -> "고급" -> "환경 변수" -> "시스템 변수" 에서 PATH에 추가 한다.
☞ \MinGW\bin;

2. wxWidgets 설치

? http://www.wxwidgets.org 사이트에서 wxWidgets을 내려받는다.
? 내려받을 프로그램은 http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.3-Setup-1.exe 이다.
? 위 프로그램을 실행하면 설치 화면이 나오는데, 설치 디렉토리만 \wxWidgets-2.6.3 로 설정해주고 나머지는 설치 과정에 따른다.
? wxWidgets 패키지가 성공적으로 설치되었으면, 사용자 환경 변수에 WXWIN 이 등록되어 있을 것이다. 이것을 시스템 변수로 옮긴다(굳이 안해도 상관없으나 필자의 경우, 전역적 환경을 구축하고자 변경하였다).

필자가 이 패키지를 설치하고, 조금 헤맸는데, 그 이유는 이 패키지는 소스 형태로 배포되고, 바이너리 라이브러리들을 제공하지 않는 것을 몰랐기 때문이다. 따라서, 패키지 설치가 끝나면 "1. MinGW 설치" 에서 설치한 컴파일러를 이용하여 라이브러리들을 컴파일해야 한다.

? 먼저 도스창을 하나 연다..
? make 버전을 다음 명령으로 확인한다.
- Prompt> mingw32-make -v # GNU make 3.80인지 확인한다.

2.1 wxWidgets 빌드 ? 이제 wxWidgets를 컴파일하기 위하여 wxWidgets 디렉토리로 이동한다. - Prompt> cd C: - Prompt> cd %WXWIN%\build\msw ? 먼저 소스에 대한 크린업을 수행한다(아래 명령들은 모두 한 줄로 이어서 입력하여야 한다). - Prompt> mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean 주:) 옵션이 유니코드에 릴리즈 빌드라는 점에 주목하라. ? 모든 것이 깨끗해졌으면 이제 컴파일을 시작한다. - Prompt> mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release 주:) 여기 사용된 옵션들은 Code::Blocks에서 공식적으로 지원되는 옵션이며, 다른 옵션들을 원한다면 Code::Blocks를 재구성하여야 하고, 그러기 위하여 또다른 삽질이 필요하다.

이 과정은 꽤 시간이 걸린다. 이 시점에서 커피나 한잔 마시자. 나의 팬티엄-M 1.5 GHz 노트북에서 30분 정도 걸렸다.

3. Code::Blocks 설치

? http://codeblocks.org 사이트에서 "Code::Blocks IDE, without compiler" 윈도우용 바이너리를 내려받는다.
? 내려받을 프로그램은 http://prdownloads.sourceforge.net/codeblocks/codeblocks-1.0rc2.exe?download 이다.
- 이 바이너리 배포판은 기능상 문제가 있기 때문에 실제 사용하지는 않지만, 기본 설정 상태를 유지하기 위하여 설치한다.
? codeblocks-1.0rc2.exe를 실행하고, 옵션에서 모든 항목을 선택하되, SVN/CVS support for projects는 제외한다(아직 SVN/CVS 지원 기능에 버그가 있다).
? 설치 디렉토리를 \CodeBlocks 로 하고, 나머지는 설치 과정에 따른다.
? 최근의 Nightly Build 패키지를 내려 받는다.
- http://forums.codeblocks.org/index.php?board=20.0 로부터 최근의 빌드 패키지를 선택하고, Windows용 Nightly build 패키지를 내려 받는다. 필자가 내려 받은 패키지는 http://download.berlios.de/codeblocks/CB_20060515_rev2451_win32.7z 이다.
? 또한 Code::Blocks를 위한 wxWidget DLL을 내려 받는다.
- 내려받을 파일은 http://download.berlios.de/codeblocks/wxmsw26u_gcc_cb.7z 이다.
? 7z 파일은 7-zip 유틸리티로 압축 해제 할 수 있다. 내려받기 주소는 http://www.7-zip.org 이다.
? 내려받은 CB_20060515_rev2451_win32.7z 파일을 특정 디렉토리에 압축 풀고, 모든 파일을 \CodeBlocks\ 에 복사하여 기존 파일들을 덮어씌운다.
? 내려받은 wxmsw26u_gcc_cb.7z 파일을 특정 디렉토리에 압축 풀고, wxmsw26u_gcc_cb.dll 파일을 \CodeBlocks\ 에 복사한다.
? 기존의 \CodeBlocks\ 에 있는 wxmsw26_gcc_cb.dll 는 삭제한다.

4. Code::Blocks 설정

? CodeBlocks IDE를 실행한다.
? File -> New Project를 실행한다.
- wxWindgets application wizard를 선택한 후, "start wizard" 를 누른다.

- 프로젝트를 생성할 위치와 프로젝트 이름을 입력한다.

- wxWidgets의 위치를 기술한다.

- Global Variable Editor에 wx Variable에 대한 Base Directory를 입력한다.

- 마지막 옵션들을 디폴트로 놔두고 "Finish"를 누른다.

- 메뉴에서 "Build"를 해본다. 오류 없이 진행되면 wxTest.exe가 생성된다.

? 생성된 실행 프로그램은 실행하기 위하여 wxmsw26u_gcc_custom.dll 파일이 필요하다. 이 파일은 C:\IDE\wxWidgets-2.6.3\lib\gcc_dll 에 있으며, 이 디렉토리를 PATH 환경 변수에 추가하거나 c:\Windows\System32\ 에 복사한다.
- 프로그램을 실행해 본다. 화면에 나오면 성공이다.

? 프로그램이 콘솔창과 함께 뜰 경우, Project/targets options에서 target opntion을 GUI application으로 바꾸고, "Pause when execution ends"를 꺼준 후, 리빌드 한다.
주:) PATH 환경 변수를 변경할 경우, PATH 를 사용하는 프로그램을 재 실행해 주어야 변경된 환경 변수값을 읽을 수 있다.
? 이 글은 UNICODE를 사용하는 것을 전제로 작성하였기 때문에, 에디터 설정 역시 유니코드를 지원하도록 설정하여야 한다.

5. 우분투 리눅스에서 구축 방법

? Code::Blocks를 설치하기 전에 필요한 패키지들을 설치한다.
$ sudo apt-get install build-essential gdb
$ sudo apt-get install libwxgtk2.6-0 libwxgtk2.6-dev wx2.6-headers wx2.6-doc wx-common
? http://forums.codeblocks.org/index.php?board=20.0 에서 최신의 바이너리 deb 패키지(이 글을 쓰는 시점에서 최신 패키지명은 http://download.berlios.de/codeblocks/CB_20060524_rev2499.deb 이다)를 다운로드 받는다.
? 다운로드 받은 위치에서 패키지를 설치한다.
$ sudo dpkg -i
? 4. 에서와 같이 Code::Blocks를 설정하기에 앞서 심볼릭 링크를 하나 만들어주어야 한다.
$ ln -s /usr/include/wx-2.6/wx /usr/include/wx
? Global Variable Editor에 wx Variable에 대한 Base Directory를 “/usr”을 입력한다.
? wxWidgets Application Wizard를 실행할 때, wxWidgets’s location에 “/usr” 을 입력한다.
? 자세한 설치 문서는 이 곳(http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks)에서 찾을 수 있다.

이상으로 MinGW, wxWidget, Code:Blocks를 이용한 C/C++ IDE 환경 구축 및 우분투 리눅스에서의 Code::Blocks 설정 방법을 알아보았다. 정상적으로 설치가 되었으면, 다음 문서(http://wiki.codeblocks.org/index.php?title=Category:Application_Development)에서 “WxSmith Tutorial & Pointers”를 직접 따라해 보기 바란다. WxSmith는 GUI 응용프로그램 제작을 돕는 리소스 편집 도구 이다.

필자는 우리나라의 데스크탑 환경이 마이크로소프트 일색인 특정 기업의 독점적 구조를 탈피하기 위해서, MS에 종속적인 개발 환경에서 탈피하여 특정 OS에 독립적인 프로그램들이 많이 나오기를 바란다. 그러기 위해서는 개발 환경이 우선 MS 종속을 탈피해야 한다고 생각한다. 이 글이 어느 정도 필자의 바램을 충족시켜 주기를 기대하면서 글을 마칩니다.

참고 사이트 http://www.mingw.org : Minimalist GNU for Windows http://wxwidgets.org : Cross-Platform GUI Library http://codeblocks.org : The Open Source, Cross-platform, Free C/C++ IDE http://wiki.codeblocks.org : the official Wiki for Code::Blocks

File attachments: 
첨부파일 크기
PDF icon CodeBlocks_Configuration.pdf272.28 KB
chanik의 이미지

Dev-C++이나 Relo같은 것은 들어봤지만 이건 처음 듣네요.
노력이 배어 있는 좋은 정보 고맙습니다.

저 아시겠죠? 가입하신지 "1일 5시간"만에 딱 걸리셨네요.. ^^

misari의 이미지

반갑네요.
그 동안 궁금했었는데, 소주 한잔 해야죠?

꿈을 버리지 말자!

lovian의 이미지

눈이 번쩍 뜨이는 정보군요.
감사합니다!! pdf파일은 모셔두겠습니다 :)
-----------------
한글을 사랑합니다.

-----------------
한글을 사랑합니다.

xx1의 이미지

정말 좋은 정보 감사합니다. : )
그런데 Code::Blocks은 아직 정식판이 안 나왔군요.

즐거운 하루 되시길 바랍니다. : )

misari의 이미지

개인적인 생각으로는 dev-cpp보다 훨씬 나은 것 같습니다.

꿈을 버리지 말자!

puaxx의 이미지

궁금합니다.어떤환경이 나왔을지 +.+

misari의 이미지

Code::Blocks 자체가 wxWidget으로 만들어졌습니다.
이 문서를 그림과 함께 보고 싶으시면 첨부한 pdf 문서를 보십시오.

꿈을 버리지 말자!

misari의 이미지

wxSmith 사용법은 아래 주소를 참조하세요. 설명이 참 잘되어있습니다.
http://wiki.codeblocks.org/index.php?title=WxSmith_Tutorial_%26_Pointers
아직 wxSmith는 불안정합니다.

꿈을 버리지 말자!

sw0rdfish의 이미지

wxWidgets-2.6.3을 컴파일 도중
gcc_mswudll\basedll_dummy.o 를 찾을수 없다는군요.

OS : window2003
make : mingw32-make 3.80
gcc : 3.4.2

입니다...

조언 부탁드립니다.

흠냐..나는 겁쟁이

misari의 이미지

혹시 MSYS 패키지 설치하셨다면, MSYS 패키지의 gcc 때문에 컴파일이 안될 수 있습니다.
깨끗이 지우고, 이 글의 처음부터 다시 해보십시오.

꿈을 버리지 말자!

sw0rdfish의 이미지

제가 잘모르고 msys를 겹처서 설치했군요...

다 걷어내고 다시 하니깐 컴파일 됩니다.... 감사합니다.

흠냐..나는 겁쟁이

douner의 이미지

정말 좋은 자료이네요. 소중히 간직하겠습니다^^
빨리 집에 가서 꾸며야지~^^

http://grafix3d.net/wiki
인생, 쉬운 것만은 아니네..

인생, 쉬운 것만은 아니네..

trinite의 이미지

code block nightly build를 다운받으려고 하니 자꾸만 페이지를 열수 없다고 나오네요 :(
어떻게 된것인지 궁금합니다. 저만 그런가요?? berlios.de는 잘 들어가지는데... download.berlios.de는 안들어가지네요 ㅜㅠ

Senior Engineer

오장현의 이미지

저는 berlios.de 도 접속이 안됩니다.

http://forums.codeblocks.org/index.php?topic=3161.0

보니까 berlios down 이라네요. -_-

Sang-ho Shin의 이미지

저기요 저는 윈 98을 쓰는데요..
윈 98은 유니코드를 지원 안하지 않나요?
컴파일할때 UNICODE=1 을 UNICODE=0으로 바꿔서 해줘야 하나요?
위에 보면 설정을 고쳐주면 나중에 code::blocks 을 할 때도 다른 삽질이 필요하다고 써있는데
어떻게 해야 하나요?

misari의 이미지

미처 몰랐습니다.
근데, 윈98에선 저도 안해봤기 때문에 모르겠습니다. ANSI로 컴파일하면 될것 같은데,
자세한 것은 Code::Blocks 포럼이나 위치 문서를 참고하세요.

꿈을 버리지 말자!

vidar의 이미지

win98에서는 유니코드를 사용하기 위해 mslu라는 걸 사용합니다.(windows용 dll입니다.어딘가에서 다운로드 받으실 수 있을 거구요..)
컴파일시에 옵션항목중에 MSLU=1 뭐 이렇게 주시면 됩니다.
win2k이상에서 MSLU는 사용하시면 대략 난감합니다.

그리고 추가로 사족을 달자면...
mingw설치후 msys를 설치하셔도 wxWidgets를 컴파일하는데는 문제가 없습니다..

간단히 요약하면
c:/wxWidgets-2.6.3에 소스를 푸셨다고 가정하면...

mingw설치
msys 설치(c:/msys에 설치했다고 가정^^)
msys를 실행해서

cd /c/wxWidgets-2.6.3
mkdir build-debug
cd build-debug
../configure xxx(configure에 대해서는 ../configure --help하셔서 자세히^^)
make && make install

일케 하믄 됩니다..^^

하나 더 사족을 달면
저는 이걸 vs 2005 express에서 컴파일 해봤는데요.. 2.6.3에서만 문제가 생기는 게 있습니다.
http://wxforum.shadonet.com/viewtopic.php?t=6950&highlight=wxdummyconsoleapp 여기에 가니 해결책이 있더군요

xx1의 이미지

Quote:
하나 더 사족을 달면
저는 이걸 vs 2005 express에서 컴파일 해봤는데요.. 2.6.3에서만 문제가 생기는 게 있습니다.
http://wxforum.shadonet.com/viewtopic.php?t=6950&highlight=wxdummyconsoleapp 여기에 가니 해결책이 있더군요

http://wxforum.shadonet.com/viewtopic.php?t=6261

http://www.wxwidgets.org/wiki/index.php/Compiling_WxWidgets#Microsoft_Visual_Studio

misari의 이미지

지금은 잘 됩니다.

꿈을 버리지 말자!

enjoylife의 이미지

좋은 정보 감사 합니다. 오늘 시간내서 노트북에 설치해 봐야 겠군요. ^^
=============================
물 흐르듯이......

=============================
물 흐르듯이......

semjase의 이미지

우분투에서 구축방법중 두번째 sudo부분이 에러납니다.

sudo apt-get install libwxgtk2.6-0 libwxgtk2.6-dev wx2.6-headers wx2.6-doc wx-common
이거 실행하면
E: libwxgtk2.6-0 꾸러미를 찾을 수 없습니다
이런 에러가 나네요.

스냅틱관리자에서도 안나오고...어떻게해야하죠?

.

misari의 이미지

글을 쓴 시점 이후로 시간이 흐를수록 버전은 계속 바뀝니다.
현재 시점에서의 버전을 확인해보시고, libwxgtk를 현재 버전으로 설치하시기 바랍니다.

꿈을 버리지 말자!

ted78의 이미지

그냥 간단하게 MinGW Developer Studio 사용하는 방법도 있습니다.

http://www.parinyasoft.com/

나는 생각하는 갈대다?

나는 생각하는 갈대다?

misari의 이미지

삭제

꿈을 버리지 말자!

FlOw의 이미지

Nightly Build 멋찌네요 ^_^b

-------------------- 절취선 --
행복하세요:)

-------------------- 절취선 --
행복하세요:)

욱성군의 이미지

옵션대로 make clean 을 실행시키면 missing seperator 라는 에러가 뜨는데 어떻게 해결 해야할까요? 해당 부분을 주석 처리하니 그 밑줄도 똑같은 에러가 나네요

욱성군의 이미지

아 bcc 로 실행했군요!;

semjase의 이미지

상당히 마음에 드는 환경입니다.
그런데 한글입력이 잘 안돼네요. 열심히 입력하다보면 글자가 빠져있거나 제자리에서 맴돕니다.
한글처리가 제대로되게하는 방법은 없나요?

.

xx1의 이미지

mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release 로 빌드 했는데
마지막에 mingw32-make: *** [..\..\lib\gcc_dll\wxmsw26u_gcc_custom.dll] Error 1 라면서 에러가 뜨네요.

해결 방안이 없을까요?

버젼은 MinGW32 Current로 전체 설치했습니다.

마지막 에러의 디렉토리를 확인하니 libwxmsw26u.a 라는 파일은 있는데 크기가 O이네요.

세이군의 이미지

mingw32-make: *** [..\..\lib\gcc_dll\wxmsw26u_gcc_custom.dll] Error 1
이 메시지로는 어떤 이유인지 알 수 없습니다.
이 메시지 위로 약 10여줄을 더 적어주시기 바랍니다.

한 걸음 더 가까이

xx1의 이미지

제 무지의 소산이었습니다.

컴파일 하는 동안은 음악감상, 웹서핑(Firefox로)해도 괞찬길래
얼다구나 하고 다키고 했었는데 256RAM으로는 링커인 LD가 감당을 못한 것이었습니다.
wxWidget 다시 깔고, 가상메모리를 자유로 놓아두니까 적절하게 완료시켜 주네요.
[wxmsw26u_gcc_custom.dll]는 makefile.gcc의 최종생성물이더군요.
앞으로 링커가 작동할 때에는 Firefox같은 것은 사용을 지양해야겠습니다.
256RAM에서는 힘들군요.

세이군님, 신경써주셔서 감사합니다.
즐거운 하루 되시길 바랍니다. : )

익명사용자의 이미지

아래와 같이 wxWidget 을 컴파일 하려니
에러가 발생합니다.. 초짜라 어찌 해야 할지...
훈수 부탁합니다.

C:\wxWidgets-2.6.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1
UNICODE=1 BUILD=release clean
if exist gcc_mswudll\*.o del gcc_mswudll\*.o
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist gcc_mswudll\*.d del gcc_mswudll\*.d
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist ..\..\lib\gcc_dll\libwxregexu.a del ..\..\lib\gcc_dll\libwxregexu.a
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist ..\..\lib\gcc_dll\libwxzlib.a del ..\..\lib\gcc_dll\libwxzlib.a
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist ..\..\lib\gcc_dll\libwxpng.a del ..\..\lib\gcc_dll\libwxpng.a
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist ..\..\lib\gcc_dll\libwxjpeg.a del ..\..\lib\gcc_dll\libwxjpeg.a
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist ..\..\lib\gcc_dll\libwxtiff.a del ..\..\lib\gcc_dll\libwxtiff.a
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist ..\..\lib\gcc_dll\libwxexpat.a del ..\..\lib\gcc_dll\libwxexpat.a
/usr/bin/sh: -c: line 1: syntax error: unexpected end of file
mingw32-make: [clean] Error 2 (ignored)
if exist ..\..\lib\gcc_dll\wxmsw26u_gcc_custom.dll del ..\..\lib\gcc_dll\wxmsw26
u_gcc_custom.dll

knight2000의 이미지

좋은 정보 고맙습니다.

===== ===== ===== ===== =====
knight2000 of SALM.
SALM stood for SALM Ain't a Life Model.
SALM is not the life model, but SALM is just the life.

Gethoper의 이미지

시키는데로 고대로 따라만 했는데..ㅜㅜ

C:\WXWIDG~1.3\build\msw>cmd /c "mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release " 
if not exist ..\..\lib\gcc_dll\mswu mkdir ..\..\lib\gcc_dll\mswu
g++ -c -o gcc_mswudll\monodll_imagjpeg.o  -O2 -mthreads  -DHAVE_W32API_H -D__WXMSW__      -D_UNICODE  -I..\..\lib\gcc_dll\mswu -I..\..\include -W -Wall -I..\..\src\tiff -I..\..\src\jpeg -I..\..\src\png -I..\..\src\zlib -I..\..\src\regex -I..\..\src\expat\lib -DwxUSE_BASE=1 -DWXMAKINGDLL   -Wno-ctor-dtor-privacy   -MTgcc_mswudll\monodll_imagjpeg.o -MFgcc_mswudll\monodll_imagjpeg.o.d -MD ../../src/common/imagjpeg.cpp

인터넷을 검색해보니..
http://lists.wxwidgets.org/archive/wx-dev/msg08352.html
요런게 있더라구요..

읽다보니..
These are the
files that developers are *expected* to modify in order to tailer the
user of the JPEG libraries to their particular systems! Quoting from
the jmorecfg.h header file:

"This file contains additional configuration options that customize
the JPEG software for special applications or support machine-
dependent optimizations. Most users will not need to touch this
file."

So this file was intended to be modified if any additional
configuration changes are needed to keep your application or
requirements happy (even though most users should not touch this
file, in this case this is where the modifications should be made).
In this case add the following:

#ifdef cplusplus
#define METHODDEF(type)		extern "C" type
#else
#define METHODDEF(type)		static type
#endif

BTW, after looking at jmorecfg.h it is clear that this file has been
modified for wxWindows already anyway! It already has ifdef's for
GNUC and VisualAge C++ throughout the code which were probably not
there at the time the original JPEG library was released.

요렇게 바꾸라는것 같은데요 바꾸고 컴파일해도 마찬가지네요.

Gethoper의 이미지

wxwidget.exe를 설치하시지 마시고 새버젼 zip으로 압축 된거 찾아서 설치하세요
그럼 한방에 되네요 ^^

FlOw의 이미지

검색하다 찾았어요 ^^;

Link :
1 2

-------------------- 절취선 --
행복하세요:)

-------------------- 절취선 --
행복하세요:)

익명 사용자의 이미지

김태용의 gcc로 공부하는 c++ 프로그래밍과 wxWidges GUIS개발이란 책에서

CHAPTER19에서 <윈도우와 리눅스에서 C++프로그래밍과 환경 구축>이란 부분이 있습니다.

mingw-5.1.3.exe 파일과 gdb-6.3-2.exe 파일과 wxMSE-2.8.7-Setup.exe 파일을 다 설치했습니다.

경로는 책에 나와있는 경우 그대로 D:\Tools\MinGW에 했구요..

cmd도스창을 열어서 현재 경로가 D:\Tools\wxWidges\build\msw> 입니다.

D:\Tools\wxWidges\build\msw>mingw32-make.exe -f makefile.gcc clean

D:\Tools\wxWidges\build\msw>mingw32-make.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 UNICODE=1 BUILD=release

이 두 줄의 명령어를 차례대로 쳤더니 잘 실행되다 싶더니 아래와 같은 오류가 떠서 질문합니다.

제가 c++ 프로그래밍을 굉장히 좋아해서 비주얼 2008 스튜디오에서 코딩하는 것보다 C++을 윈도우 환경에서 이용하여 GUI프로그래밍을 한 번 해보고 싶다는

생각이 간절하게 들었습니다.

아래 오류 메시지를 적어 드리니 조금 도와주시면 학습에 굉장히 도움이 될 것 같네요 ㅎㅎ

"3" clean
mingw32-make.exe[2]: Entering directory `D:/Tools/wxWidgets/samples/wizard'
if exist gcc_mswd\*.o del gcc_mswd\*.o
if exist gcc_mswd\*.d del gcc_mswd\*.d
if exist gcc_mswd\wizard.exe del gcc_mswd\wizard.exe
mingw32-make.exe[2]: Leaving directory `D:/Tools/wxWidgets/samples/wizard'
mingw32-make.exe -C mfc -f makefile.gcc CC="gcc" CXX="g++" CFLAGS="" CXXFLAGS=""
CPPFLAGS="" LDFLAGS="" CPP="gcc -E" SHARED="0" WXUNIV="0" UNICODE="0" MSLU="0"
BUILD="debug" DEBUG_INFO="default" DEBUG_FLAG="default" MONOLITHIC="0" USE_GUI="
1" USE_HTML="1" USE_MEDIA="1" USE_XRC="1" USE_AUI="1" USE_RICHTEXT="1" USE_OPENG
L="0" USE_ODBC="0" USE_QA="0" USE_EXCEPTIONS="1" USE_RTTI="1" USE_THREADS="1" US
E_GDIPLUS="0" OFFICIAL_BUILD="0" VENDOR="custom" WX_FLAVOUR="" WX_LIB_FLAVOUR=""
CFG="" CPPUNIT_CFLAGS="" CPPUNIT_LIBS="" RUNTIME_LIBS="dynamic" GCC_VERSION="3"
clean
mingw32-make.exe[2]: Entering directory `D:/Tools/wxWidgets/samples/mfc'
if exist gcc_mswd\*.o del gcc_mswd\*.o
if exist gcc_mswd\*.d del gcc_mswd\*.d
if exist gcc_mswd\mfctest.exe del gcc_mswd\mfctest.exe
mingw32-make.exe[2]: Leaving directory `D:/Tools/wxWidgets/samples/mfc'
mingw32-make.exe[1]: Leaving directory `D:/Tools/wxWidgets/samples'

저 같은 경우는 이런 오류 메시지가 떠서 도저히 어떤 부분에서 잘못이 됐으며 어떤 파일을 제거하고 다시 설치해서 명령어를

쳐줘야 되는지 도저히 모르겠습니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.