윈도우에서 이클립스, MinGW를 이용한 C 개발환경 세팅

송지석의 이미지
7175
points
2
points

원문위치

이클립스 설치
이클립스 홈페이지에서 받아다가 깝니다. 압축을 풀어주고 그냥 실행하면 됩니다. SDK를 깔아도 되고 런타임만 깔아도 됩니다.
물론 그 전에 자바를 깔아야 합니다. SDK를 설치하려고 하였으면 자바도 SDK로 깔아야 빌드를 할 수 있습니다.
저는 eclipse-SDK-3.0.1-win32.zip 를 받아서 C:\programs\ 아래에 압축을 풀었습니다.

MinGW 설치
cygwin을 이용하는 게 더 쉽지만 cygwin으로 빌드한 프로그램은 항상 cygwin1.dll을 필요로 합니다. MinGW 로 빌드하면 그러지 않아도 됩니다.
MinGW 에서 설치 프로그램을 받아다가 깝니다. make와 gcc등이 되어야 합니다. mingw 패키지를 받으면 됩니다.
저는 MinGW-3.1.0-1.exe를 받아서 깔았습니다.

이클립스 실행 배치 파일
이클립스는 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

이클립스 실행해보기
이제 eclipse.bat를 실행해봅니다. workspace라고 작업공간을 써달라고 하면 d:\work\eclipse_work 정도로 정해주고, 일단 웰컴 화면이 잘 뜰 겁니다.
아직 CDT를 안깔아서 C 프로젝트를 만들 수 없습니다.
이젠 CDT를 깔아봅시다.

CDT 설치
이클립스 사이트 영문 문서
이클립스 버전 3.0부터는 CDT를 SW update에서 깔 수 있습니다.
이클립스 메뉴에서 help->Software updates->find and install 을 선택합니다.
처음 나오는 마법사 창에서 Search for new features to install을 선택하고 Next.
다음 나오는 마법사 창에서 New Remote Site를 선택합니다.
URL에 http://update.eclipse.org/tools/cdt/releases/new 를 써줍니다.
Name에는 적당히 CDT2.x 정도로 써줍니다. 그리고 OK
그러면 리스트중에 CDT2.x가 생겼습니다. 그아래에 현재 최신 버전인 CDT2.1을 체크. 그리고 next
설치 가능 한 것이 Tooling SDK, Tools 두개가 나옵니다. 일단 Tooling SDK로 깔아보겠습니다.
체크하고 Next
라이센스 Agree 하고 Next 쭉 하면 다운로드 하고 깔립니다.
이클립스를 재시작하라고 하면 재시작 해주고, 혹시 모르니 아까 만든 배치 파일로 새로 시작해줍니다.

MinGW 에 맞게 환경 설정.
불행히도 MinGW 의 make는 이름이 make가 아니고 mingw32-make 입니다. 이것 때문에 처음부터 빌드가 안될 겁니다.
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로 파일을 복사하면 제대로 되는 것 같습니다. 참고하세요.

프로젝트 만들기.
Makefile을 이클립스가 관리하는 Managed Make C project로 생성하겠습니다.
New->Project 에서 Managed Make C project 를 선택하고 이름을 정하면 됩니다.
소스 파일은 그 프로젝트에서 New->Source file 에서 이름 정해서 만들면 되고요.
나머지는 내부에서 알아서 하게됩니다.
빌드와 실행은 세팅만 잘 되어있다면 메뉴에서 클릭하면 몇번 물어보는 것을 그냥 Next, Run 하면 다 됩니다.

참조 링크
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... 아까 언급했었던 곳. 이클립스 홈에서.

첨부 파일파일 크기
cdt_example.PNG53.12 KB
1.jpg164.44 KB

잘 봤습니다 ^^

0
points

Windows + Eclipse + cygwin 으로 사용하다 메모리 해제하는 쪽에서 이상하게 안나야 하는 에러가 나서 사용 못하고 있었거든요. (제가 실력이 부족하여 정확한 원인은 못밝혀냈습니다. T_T)

강좌 보고 mingw설치하고 이것 저것 테스트 해보고 있습니다. dll 안들고 다녀도 된다니 좋네요 진짜. 감사합니다~! 사용하면서 노하우가 좀 쌓이면 여기 적어놓고 하겠습니다~

저.. 이상하네요.

0
points

배치 파일을 만들어서 실행을 하였음에도 불구하고
mingw를 불러오지 못하는 듯 합니다..

set PATH=%PATH%;C:\MinGW\bin //설치경로는 같습니다.
cd C:\Program Files\eclipse //여기에 이클립스 설치했구요.
start eclipse.exe
exit

이클립스를 열고 hello.c를 작성해보니 standard make c project나 managed make c project 모두 mingw32-make, make를 실행시키지 못하네요.

추신> 오타가 있네요. ^^; ming32-make가 아니라.. mingw32-make가 아닐런지요.. ㅎㅎㅎ

Fe.head의 이미지
8001
points

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

0
points

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

make.bat

@mingw32-make.exe %*

송지석의 이미지
7175
points

Re: 저.. 이상하네요.

0
points

windnair00 씀:
배치 파일을 만들어서 실행을 하였음에도 불구하고
mingw를 불러오지 못하는 듯 합니다..

set PATH=%PATH%;C:\MinGW\bin //설치경로는 같습니다.
cd C:\Program Files\eclipse //여기에 이클립스 설치했구요.
start eclipse.exe
exit

이클립스를 열고 hello.c를 작성해보니 standard make c project나 managed make c project 모두 mingw32-make, make를 실행시키지 못하네요.

추신> 오타가 있네요. ^^; ming32-make가 아니라.. mingw32-make가 아닐런지요.. ㅎㅎㅎ

오타가 있었네요. 방금 수정했습니다.
그리고 배치파일은 빈칸 문제가 아닐까 합니다.
저는 설치 경로에 빈칸이 없었는데 windnair00님께서 까신 경로는 빈칸이 있네요.

set PATH=%PATH%;C:\MinGW\bin  //설치경로는 같습니다.
cd "C:\Program Files\eclipse" //여기에 이클립스 설치했구요.
start eclipse.exe 
exit

이렇게 하면 될 것 같습니다. 실제로 커맨드창 띄워놓고 그대로 쳐서 실행해보시면 될 듯..
그리고 fehead님, 제가 매뉴얼을 읽어본 기억으론 make가 실행파일이어야지 배치파일이면 안된다고 합니다.

아..음..^^;

0
points

안녕하세요.
그대로 써서 실행해본 결과,,,, path 설정은 제대로 된 것 같지만.. 연결이 되지 않는군요. ^^; 에구구.

첨부 파일파일 크기
1.jpg164.44 KB
송지석의 이미지
7175
points

Re: 아..음..^^;

0
points

windnair00 씀:
안녕하세요.
그대로 써서 실행해본 결과,,,, path 설정은 제대로 된 것 같지만.. 연결이 되지 않는군요. ^^; 에구구.

그 그림만으론 뭔지 잘 모르겠군요.
일단 간단히 커맨드창 띄워서 이클립스 시작할 때 처럼 path 설정하시고 mingw32-make 를 실행시켜보시고요.
그냥 mingw32-make.exe를 make.exe로 카피하고 설정은 그냥 디폴트로 해놓으시면 더 편할 것 같습니다.

[창피] ^^;;성공입니다. ㅠㅠ;;

0
points

악몽입니다.. 이럴수가..
build commander에

mingw32-make 이렇게 적어놓으니.. 안되는 것이었습니다.

혹시나 해서.. mingw32-make.exe라고 적으니..잘 됩니다. 감사합니다.
송지석님. 저 같은 무지랭이 때문에 귀중한 시간 내주셔서 고맙습니다.

송지석의 이미지
7175
points

Re: [창피] ^^;;성공입니다. ㅠㅠ;;

0
points

windnair00 씀:
악몽입니다.. 이럴수가..
build commander에

mingw32-make 이렇게 적어놓으니.. 안되는 것이었습니다.

혹시나 해서.. mingw32-make.exe라고 적으니..잘 됩니다. 감사합니다.
송지석님. 저 같은 무지랭이 때문에 귀중한 시간 내주셔서 고맙습니다.

mingw32-make.exe로 해야됐었군요. 저도 문서 수정해두겠습니다.

debugger 잘 동작하나요?

0
points

이클립스로 c/c++ 문제 없이 사용하시는 분들께 질문드립니다.

debug로 들어가면 계속
mi_cmd_stack_list_frames: No stack.
이란 메시지와 함께 제대로 동작하지 않는군요.
mingw와도 그렇고 cygwin으로 해도 마찬가지 입니다.

shell에서 gdb는 문제 없이 동작합니다. (mingw/cygwin 모두)
제가 어떤 설정을 빼 먹은 걸까요?
환경은 eclipse 3.1.0 + cdt 3.0.0 입니다.

atie의 이미지
17734
points

Re: debugger 잘 동작하나요?

0
points

june8th 씀:
이클립스로 c/c++ 문제 없이 사용하시는 분들께 질문드립니다.

debug로 들어가면 계속
mi_cmd_stack_list_frames: No stack.
이란 메시지와 함께 제대로 동작하지 않는군요.
mingw와도 그렇고 cygwin으로 해도 마찬가지 입니다.

shell에서 gdb는 문제 없이 동작합니다. (mingw/cygwin 모두)
제가 어떤 설정을 빼 먹은 걸까요?
환경은 eclipse 3.1.0 + cdt 3.0.0 입니다.


cdt 3.0.1에 고쳐졌다는 이 버그일 듯 합니다.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=109785
http://dev.eclipse.org/newslists/news.eclipse.tools.cdt/msg08488.html
버그가 리눅스에서 보고되서 고쳐진 것으로 되어있으니, mingw나 cygwin에서도 고쳐진 것이냐고 확인해 보는 것도 좋겠군요.

익명 사용자의 이미지

코드 컴플릿 동작하나요?

0
points

저는 dev-cpp을 통채로 받아 씁니다.
컴파일및 실행화일만드는것은 문제가 없지만
일단 ctrl+space를 누르면
무조건 맛이 가버리는 군요
eclipse 3.1.o -cdt -3 에서 해보고
그전 버전에서도 해보았지만 결과는 같더군요
리눅스에서도 해보았지만.. :evil:

코드컴플릿과 F3으로 찾아가는기능을 쓰고 싶어요..

익명 사용자의 이미지

왜 빌드가 안되는지 모르겠습니다.

0
points

위의 설명대로 이클립스 설치 후 mingw깔고 cdt도 설치했습니다.
환경변수에서 path도 잡아줬습니다.
새프로젝트로 C++ 프로젝트가 생성 가능하고
스탠다드C++프로젝트를 선택하여 간단한 소스를 작성후
빌드를 하려고 Run을 클릭했습니다.

Run 이라는 창이 하나 뜨더군요.
왼쪽 트리에 C/C++ Local Application 이라는게 있어서
그것을 선택하고 New를 클릭하여 프로젝트를 추가했습니다.
그런데 상단에 Program not specified 이런게 보이고
아래쪽에 Run이 활성화가 되지를 않습니다.
무슨 문제인가요?

khsfree의 이미지

해결

0
points

저도 같은 문제가 발생 했는데 [C/C++ make project]메뉴를 좌측에서 선택하고 우측 탭중에 [Binary Parser]를 선택하시구요 리스트 중에 "PE Windows Parser"가 체크 체크하니 문제가 해결되더라구요
그럼 수고하세요.

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

1
point

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 인테그레이션에 이제 관심을 가져도 되는겐가..

익명사용자의 이미지

"C/C++ Indexer" 는

0
points

"C/C++ Indexer" 는 개선이 되어야만 쓰겠군요. 100% 도달하기 전에 멈춰 뻗는게 다반사라 안타까워요.
--> JRE 를 새 버젼으로 업글했더니 잘되네요..^^ 참조하세요.

열시미 문서보고

0
points

열시미 문서보고 따라해서 컴파일 실행 디버깅이 아주~~ 잘 됩니다. 뿌듯~~
근디 스레드 생성해볼려구 pthread.h 를 인클루드 시켰는데 인식을 못해서
Mingw/include 의 파일을 쓰윽하고 훍어보니 없더군요.....
글구 써브 폴더도 sys 밖에 없네요.....
#include "netinet/in.h"
#include "sys/ioctl.h"
...
등등이 다 없네요..... 헉.....

이클립스 환경에서 소켓 프로그래밍을 할려면 먼가 더 설치를 해야하는건지요.....
혹시나 해서 cygwin 도 설치해서 패스를 넣어 봤는데 cygwin안에는 make,gdb, 등등이 다 없네요....
이클립스를 시그윈과 연동하는 문서는 없을까요?
문서들이 mingw 와 연동하는 것만 있어서요

kalstein의 이미지
1077
points

CYGWIN 인스톨...

0
points

옵션에 보면...gcc, gdb, make 등을 더 설치하실 수 있어요 ^^

왜 껐다가 다시 실행하면 안되는건지???

0
points

수고하십니다.
업데이트 메뉴로는 자꾸 에러(?)가 나서.
CDT 플러그인만 따로 복사해서 쓰고 있습니다.
그런데... 맨 처음 세팅해서 실행할때는 정상 동작 하는데...

왜 껐다가 다시 켜면 에러가 나는 걸까요?

버전 미스매치...

0
points

허허허...
처음 다운 로드 받을때는 최신 버전을 받았다고 생각했더니,
이클립스는 3.2.1 이고, CDT 는 2.1.x 버전이더군요...

허허허...

혹시라도 실수해서 이런일 발생하시는 분들에게 도움이 되길...

어허허허~

익명사용자의 이미지

해결 방법 좀 가르쳐 주세요

0
points

위에 저와 같은 현상을 가진 분이 있네요~
해결 방법 좀 가르쳐 주세요

-------------------------------------------------------
위의 설명대로 이클립스 설치 후 mingw깔고 cdt도 설치했습니다.
환경변수에서 path도 잡아줬습니다.
새프로젝트로 C++ 프로젝트가 생성 가능하고
스탠다드C++프로젝트를 선택하여 간단한 소스를 작성후
빌드를 하려고 Run을 클릭했습니다.

Run 이라는 창이 하나 뜨더군요.
왼쪽 트리에 C/C++ Local Application 이라는게 있어서
그것을 선택하고 New를 클릭하여 프로젝트를 추가했습니다.
그런데 상단에 Program not specified 이런게 보이고
아래쪽에 Run이 활성화가 되지를 않습니다.
무슨 문제인가요?
--------------------------------------------------------

질문요~

0
points

위 나오는 순서대로 설치를 완료했습니다.
Run을 실행시키면 다음과 같은 에러가 나오는데.. 이유가 뭘까요?
그리고.. 구문 강조 기능이 안되는데.. 왜 그런지도 좀 ^^;

dormael의 이미지
3482
points

구문 강조가 안되는

0
points

구문 강조가 안되는 것은..

현재 텍스트 에디터로 파일이 열린듯 합니다.

가능하면 파일의 확장자를 적절하게 입력하시고 오른쪽 버튼 메뉴에서 open with로 아마 c editor가 있을듯 합니다.
그걸 선택하시면 구문 강조가 잘 될겁니다.

이미 이전에 다른 에디터로 열었던 파일만 open with를 이용하시면 되고 다음부터는 더블클릭만 하셔도 잘 열립니다.

그렇군요 ㅎ

0
points

new - source file 할때.. file_name.c 처럼 확장자를 붙여줘야 하는군요. 감사합니다 ^^;

Run 에러는 모르시나요 ^^;

dormael의 이미지
3482
points

저는 이클립스를 JDT

0
points

저는 이클립스를 JDT 위주로만 이용해서 보여주신 에러는 어떤 의미인지 잘 모르겠네요.
^^

게다가 Details 버튼도 비활성화 되어 있네요.
메시지가 없으면 예상도 힘들어서요.
혹시라도 같은 상황을 경험하신 분이 계시다면 알 수 있을텐데요.

일단..

0
points

일단..
환경변수 때문입니다.
환경변수에 관한 배치파일을 따로 만들지 않고.. 윈도 속성에 PATH에 추가했는데.. 적용이 안된 모양입니다.
따로 배치파일을 만드니 실행이 되네요 ^^
근데.. 아래와 같은 에러가 발생하네요. 이클립스를 처음 접하다보니 에러메세지만 나오면 무방비입니다 -_-;;

송지석의 이미지
7175
points

http://rommance.net/wikix/ind

0
points

http://rommance.net/wikix/index.php?display=eclipse 학교 계정이 없어져서 원문 위치가 바뀌었는데 글 수정이 안되네요.. 제가 요새 윈도에서 개발을 안하다보니 해보질 못해서.. 저는 도움이 안되겠습니다.

With lots of love..
Daniel Jiseok Song

yundreamm의 이미지

1년 전인가.. Eclipse로

1
point

1년 전인가.. Eclipse로 QT개발환경 만들어보자고 해서, 만들어 둔 문서 있습니다. 필요하신분은 참고해주세요.
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/eclipse/documents/...

따라지의 이미지

cdt 설치 사이트 변경된것 같은데요?

0
points

http://download.eclipse.org/tools/cdt/releases/callisto

기존 페이지로 가면 cdt 설치가 안되네요..

eclipse 를

0
points

eclipse 를 인스톨하고나서 실행했을때는 이상이 없이 잘되었는데, CDT를 깔고 나서 실행하니 다음과 같은 에러가 났는데 어떻게 해결해야 되나요?

Error notifying a preference change listener. Check the log for details.

어디서 log를 체크해야 되는지 잘모르겠어요.

khsfree의 이미지

문제좀 해결해 주세요...

0
points

makefile을 만들어서 빌드하니 목적코드는 생성되나 실행 파일이 생성 안되더군요...
그래서 makefile을 다시 찬찬히 보니
-L c:/Program Files/MinGW/lib/gcc/mingw32/3.4.5/ -lstdc++
아무래도 이 link 옵션이 문제인것 같은데... 이걸빼니깐 실행파일이 생성되더라구요..
지금은 간단한 예문이라 잘 실행되는데 나중에 저 link옵션이 문제가 되지 않을지 걱정이 되네요.
이 옵션의 정확한 해석을 부탁드립니다.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.