Do diffence

eclipse, MinGW를 이용한 C/C++ 개발환경 본문

OLD

eclipse, MinGW를 이용한 C/C++ 개발환경

고포릿 2006. 11. 28. 10:25


...

MinGW 설치

cygwin을 이용하는 게 더 쉽지만 cygwin으로 빌드한 프로그램은 항상 cygwin1.dll을 필요로 합니다. MinGW 로 빌드하면 그러지 않아도 됩니다...




1. 이클립스 설치

2. MinGW 설치 : MinGW / MinGW-3.1.0-1.exe
cygwin을 이용하는 게 더 쉽지만 cygwin으로 빌드한 프로그램은 항상 cygwin1.dll을 필요로 합니다. MinGW 로 빌드하면 그러지 않아도 됩니다.
3.이클립스 실행 배치 파일

이클립스는 make, gcc등의 path를 선택하지 못하고 그냥 시스템 path를 씁니다.

저는 mingw와 cygwin을 둘 다 쓰기 때문에 시스템 환경 변수에 C:\mingw\bin 을 넣지 않고 다음과 같은 배치파일로 실행시켰습니다.
--eclipse.bat
set PATH=%PATH%;C:\MinGW\bin

cd C:\programs\eclipse-SDK-3.0.1-win32

start eclipse.exe

exit
4. CDT 설치 이클립스 사이트 영문 문서

이클립스 버전 3.0부터는 CDT를 SW update에서 깔 수 있습니다.

이클립스 메뉴에서 help->Software updates->find and install 을 선택합니다.

처음 나오는 마법사 창에서 Search for new features to install을 선택하고 Next.

다음 나오는 마법사 창에서 New Remote Site를 선택합니다.

URL에 http://download.eclipse.org/tools/cdt/releases/callisto 를 써줍니다.

Name에는 적당히 CDT3 정도로 써줍니다. 그리고 OK



5. MinGW 에 맞게 환경 설정.

eclipse / Window->Preferences를 선택해서 나온 다이얼로그 박스에서 C/C++ 아래의 Make->New Make project /Build command

--> mingw32-make.exe

--> Binary parser에 Gnu Elf parser


주의사항 - Managed Makefile C Project

위처럼 하면 Standard makefile C project로 개발할 때는 별 문제 없습니다만 만일 프로젝트를 만들었을
때자동으로 메이크파일을 생성해주는 Managed Makefile C project로 했다면 항상 make
프로그램을make.exe로 간주합니다. FAQ페이지 링크

그래서 Managed Makefile C project로 프로그램을 짜려고 했다면 계속 실패할 겁니다.

이경우에

...>cd c:\mingw\bin

C:\MinGW\bin>copy mingw32-make.exe make.exe

1개 파일이 복사되었습니다.

이렇게 make.exe로 파일을 복사하면 제대로 되는 것 같습니다. 참고하세요.

make.bat를 C:\MinGW\bin에다가 만들어 쓰는것이 편할것 같은데요.

make.bat

@mingw32-make.exe %*




프로젝트 만들기.

Makefile을 이클립스가 관리하는 Managed Make C project로 생성하겠습니다.

New->Project 에서 Managed Make C project 를 선택하고 이름을 정하면 됩니다.

소스 파일은 그 프로젝트에서 New->Source file 에서 이름 정해서 만들면 되고요.

나머지는 내부에서 알아서 하게됩니다.

빌드와 실행은 세팅만 잘 되어있다면 메뉴에서 클릭하면 몇번 물어보는 것을 그냥 Next, Run 하면 다 됩니다.



조심 조심

VC만 쓰다가 Eclipse/MinGW 초보자 관점에서 몇가지 적어보겠습니다.

저와 비슷하게 고생하실지도 모를 다른 초분들께 저의 삽질 목록이 도움이 되었으면 합니다. :wink:

1. IDE 설치

우선 Eclipse SDK와 CDT 설치는 어려움이 없었고요,

버전은 3.1.1 에 CDT 3.0.1 이네요.

2. MinGW 설치

MinGW는 세부모듈이 너무 많아 난감해서 아직도 잘 모르겠습니다.

대략 exe 확장자 가진놈을 깔면되는듯 합니다.

잘몰라서 Proposed의 MinGW-5.0.0.exe 부터 시작했습니다.

3. 프로젝트 타입

처음이니 standard 프로젝트부터 차근차근 해봐야지 싶어

standard make project 를 선택했다가,

main.c 가 왜 빌드가 왜 안되나 하며 삽질좀 했습니다.

makefile이 없는 이유였더군요.

4. Managed C/C++

위에거랑 같은 이야기지만, VC처럼 프로젝트 운용하려면 Managed 프로젝트를 선택해야 되네요.

C#등에서 의미하는mananged 의미인줄 알고 제꼈습니다만.

문서를 제대로 안읽어서... RTFM 이라고 자학합니다. ㅡ.ㅡ

5. 빌드메뉴 비활성?

어처구니 없는것이지만, 빌드메뉴가 활성화 안되서 한참 고민했는데,

[v] Automatic Build 활성화 되어있는것 몰랐습니다.

파일저장하면 종속성에 따라 자동빌드하더군요. 저는 체크해제했습니다.

6. make

위에 언급된것처럼 문제를 겪어서, /mingw/bin 폴더보다가

MinGW32-make.exe 를 make.exe 로 복사했습니다.

여기까지 하면 build가 성공해서 .exe가 생성되는군요.

Run As... 이용해서 골라서 실행하면 되는것 같구요.

디버깅을 하려고 폼잡았죠.

7. Debug Perspective

프로젝트 생성시에도 C/C++ Perspective 사용할거다라면서 메시지창이

떴었는데, 그냥 지나쳤더랬죠. 디버깅할때도 물어보더군요.

그래서 Run/Debug 설정창에 Perspective 란 놈을 골똘히 보다가

아하 Perspective를 라고하는 놈이 UI Layout 정도로 해석되는것 같군요.

그래서 새 프로젝트 만들때 C/C++ Perspective란 표현을 썼었나 봅니다.

8. 디버깅 CreateProcess실패

디버깅이 안되길래 보니 /MinGW/bin/gdb.exe 가 없더군요.

다시 MinGW 사이트에서 GDB가 추가설치 했습니다.

9. Stop on main()

디버그 모드로 잘 들어간것 같은데, Debugger Process 에 빨간 메시지:

"mi_cmd_stack_list_frames: No stack"

켁 하며 또 할게 남았나 하고 놀랬는데. 디버거 옵션에

[x] Stop on main() 이 활성화되어있어 main()에서 멈춘것이더군요.

Suspended 상태인 GDB debugger thread 를 리줌[>] 하니 도네요.

제 코드의 WinMain() 에 브레이크 포인트 걸고 돌리니, BP 잘 걸리고,

step in/over/out 및 watch 도 잘 되네요.

10. Win32 API

몇가지 함수를 변경했는데, TextOutA@20 등이 없네요.

CreateWindow, ShowWindow 등은 돌아가던데,

에구, Win32 API를 받아서 설치해야겠습니다.

기타

- Save 시점마다 저장된 Diff 정보는 정말 강력하군요.

- Team 관련 기능들은 써보지 못했구요, 좋을 것 같습니다.

- "C/C++ Indexer" 는 개선이 되어야만 쓰겠군요. 100% 도달하기 전에 멈춰 뻗는게 다반사라 안타까워요.

- 저에게는 치명적인 문제입니다만, 간단한 프로젝트 두개에 JVM이 300MB 훌쩍 잡아먹습니다. 제 시스템 사양이 낮아 턱하니 뻗어버리네요.

이클립스 화팅입니다. Java 진영으로만 이해했던 이클립스,

첫발 댕겼으니 SubVersion 인테그레이션에 이제 관심을 가져도 되는겐가..



참조 링크