일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ubuntu
- 보안
- uml example
- 작성중
- Qmail
- Algorithm
- IT 키워드
- Audacity
- 주식
- Linux
- eclipse35
- Android
- 공매도
- java
- 알고리즘
- LDAP
- adb
- Eclipse
- unix
- UX
- conemu
- IPTV
- 기술사
- 코스피
- 태터수정
- 우분투
- 도서
- 안드로이드
- KOSPI
- Today
- Total
Do diffence
eclipse, MinGW를 이용한 C/C++ 개발환경 본문
...
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 을 넣지 않고 다음과 같은 배치파일로 실행시켰습니다.
set PATH=%PATH%;C:\MinGW\bin
cd C:\programs\eclipse-SDK-3.0.1-win32
start eclipse.exe
exit
이클립스 버전 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 에 맞게 환경 설정.
--> 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 인테그레이션에 이제 관심을 가져도 되는겐가..
참조 링크
- http://www.jlab.net/news/20021001/news.htm
한글. 옛날(이클립스 2.x) 자료이고 Standard Make C Project 기준입니다. - http://www.cs.umanitoba.ca/~eclipse/7-EclipseCDT.pdf
2004년 영문 자료입니다. 역시 MinGW, Standard Make C Project 기준입니다. - http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/cdt-home/user/fa...
아까 언급했었던 곳. 이클립스 홈에서.