Tuesday, November 10, 2009

윈도우에서 MinGW + Eclipse를 이용해 C/C++ 개발하기

회사의 PC에 작은소프트 눈에뵈는 개발도구를 설치하였는데, 도대체 뭘 잘못설치한건지 툭하면 블루스크린이 뜬다. 지우고 다시 설치하여도 또 에러가 난다-_-; 회사PC라 함부로 포맷을 할 수도 없다. 그리하여 GVIM을 깔고, 각종 플러그 인을 달아 왠만한 IDE급으로 쓰려고 하였으나, 이런저런 한계를 많이 느껴서 결국 Eclipse를 사용해보기로 결심하였다. 어제 오후와 오늘 점심시간의 삽질끝에 완성한 결과물이다. ㅋㅋ 간지~!

1. MinGW를 설치한다.

MinGW가 뭐하는 녀석이냐? 윈도우에서 GCC, MAKE등을 사용할 수 있게 해주는 녀석이다. 당연히 freeware이다. ㅋㅋ 검색엔진 아무 곳이나 mingw로 검색하면 쉽게 다운로드를 받을 수 있지만~ 나중에 이 포스트를 다시 보게 될 귀차니스트 '윤정원'을 위해 미리 링크를 걸어둔다. ㅋ
[링크] : http://sourceforge.net/project/showfiles.php?group_id=2435

사이트에서 Automated MinGW Installer를 다운받아 설치한다. 어떤 패키지를 설치할 것인가를 물어보는 창이 나오는데, 나는 Java Compiler와 Ada Compiler를 제외한 나머지 패키지는 모두 설치하였다. ~_~;

C:\MING 에 설치를 하였을 경우 환경변수중에 PATH에 c:\mingw\bin을 추가해준다. 다른 디렉토리에 깔았다면 거기에 맞춰서 세팅하면 됨

2. MSYS BASH를 설치한다.

이녀석은 윈도우에서 Bash shell같은걸 지원하는 녀석인 듯 하다. (자세히는 잘 모르겠다. 요놈을 설치하지 않고도 잘 되었었는데, 모든 세팅을 완료한 후에 인터넷에서 검색한 문서에서 이녀석을 설치하라고 하여서 설치해 보았다. -_-;

역시 mingw로 검색하여 소스포지에 가서 잘 찾아보면 MSYS Base System이라고 있다 요놈을 다운받아서 설치를 하되, i386용으로 다운받아 압축을 풀어보면 설치파일이 없고 lib, bin 같은 폴더만 멀뚱하게 놓여져 있다. 요놈들을 mingw가 설치된 폴더에 복사한다. 그럼 lib는 lib대로, bin은 bin대로 그밖에도 등등 알아서 나뉘어서 설치가 된다. 물론 최신버전이 아닌 이전버전은 설치파일(exe)이 있어서 이놈을 설치하여도 된다.

3. Eclipse를 설치한다.

Free IDE의 본좌라 감히 부를 수 있는 Eclipse~! 내가 자바를 혐오하다시피 하였을 시절엔 이녀석 역시 싫어하였지만, Android Project를 진행하며 이녀석의 강력함과 확장성에 탄복하였다 -_-ㅋ

http://www.eclipse.org에 가서 C/C++ IDE용 Eclipse를 다운받는다. 이녀석은 그냥 압축을 풀면 바로 실행할 수가 있으므로 나같은 경우 c:\program files\eclipse에 압축을 풀어서 사용한다. 단 eclipse를 java로 만든 프로그램이므로 당연히 java run-time(JRE)이 있어야 하겠다. jre가 설치되어 있지 않으면 eclipse가 실행되지 않는다. JRE는 http://www.sun.com에 가서 다운받으면 된다.

4. GDB를 설치한다.

원래라면 MinGW와 함께 GDB를 설치하는게 순서상으로는 맞다. 위의 3번까지의 과정을 마치고 C/C++ 프로젝트를 만들어 빌드하여 실행을 해보니 아주아주 잘 되었다. 뭔가 분명히 삽질의 과정이 있어야 하는데 너무나도 잘되어 불안하기 까지 할 정도였다. -_- eclipse의 기능이 제대로 돌아가게 되어 심히 기분이 흐뭇하였다. 하지만 역시나 디버그가 문제였다. 괴상한 에러메세지를 내며 디버그가 되지 않아서 메뉴에 있는 온갖 세팅과 option을 건드려 보았지만 허사였다. 혹시나 해서 c:\mingw\bin에 가보니 gdb.exe가 없었다-_-; 아니 MinGW Automated Install을 했으면 당연히 디버거도 포함되어야 하는거 아닌가? -_-;

아무튼 GDB를 다운로드하여 설치하니 잘~ 먹힌다 ㅋㅋ 후에 검색엔진을 뒤져보니 gdb를 설치하지 않아 디버그를 하지 못한 삽질을 한 사람이 나 말고도 여럿 있었던 것 같다 -_-;; 역시나 구글링이 대세다.

5. Completed!

간지나는 디버깅 +_+ㅋ

아 그리고 네이버를 잘 애용하지 않는 관계로 아래의 링크를 나중에서야 알게되었다.
http://cafe.naver.com/firstcpp.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=4
아주 자세한 설명이 되어있었다. 이거 보고 따라만 했어도 삽질 덜했을텐데 ㅋ

No comments: