이 페이지는 Eclipse 에서 CDT 를 이용한 C/C++ 빌드 환경을 만드는 방법에 대한 페이집니다.

[[TableOfContents]]

== 리눅스에서 환경 만들기 ==

=== 설치 ===
  * yum을 이용한 패키지 설치
{{{
$ yum install eclipse-cdt
}}}


=== Eclipse 3.0 CDT on Linux ===
  * http://www.autexier.de/jmau/dev/CDT/cdt.html
== 윈도우에서 환경 만들기 ==

{{{
 eclipse 3.3(Europa) 버젼부터는 C/C++ 을 위한 eclipse 버젼을 바로 제공해줍니다. 기본은 같지만 이미 필요한 플러그인을 설치해놓은 버젼들을 다운받기 쉽게 용도별로 다운로드 하게 해줍니다. 즉, 지금은 간단히 'Eclipse IDE for C/C++ Developers' 를 다운받으면 아래 설명에 나오는 플러그인을 다운받을 필요없습니다.
}}}

 * eclipse 를 띄운 후 메뉴에서 '''Help''' -> '''Software Updates''' -> '''Find and Install'''... 을 선택합니다.
attachment:eclipseNewFeatureInstall.png
 * 새로 뜨는 다이얼로그에서 '''Search for new features to install''' 을 선택합니다.
attachment:eclipseNewFeatureInstall2.png

 * 다음 다이얼로그에서 오른쪽 버튼들 중 '''New Remote Site...''' 를 선택합니다.
 * 새로 뜨는 작은 다이얼로그에서 Name 은 ''Eclipse CDT'', URL 은 ''[http://download.eclipse.org/tools/cdt/releases/new]'' 를 입력합니다.
  - eclipse 3.1의 경우 ''[http://download.eclipse.org/tools/cdt/releases/eclipse3.1]'' 를 입력합니다. -민우-
  
  - eclipse 3.2를 위한 CDT 3.1.1은 ''[http://download.eclipse.org/tools/cdt/releases/callisto]''을 입력합니다. -inel-
 * URL 은 eclipse 사이트에서 왼쪽 메뉴의 ''project'' -> ''The Eclipse Tools Project'' -> ''[http://www.eclipse.org/cdt/ C/C++IDE]'' 에서 찾을 수 있습니다.
 * CDT 를 설치하면, eclipse 에서 C/C++ 관련 프로젝트를 만들 수 있습니다.
attachment:eclipseCDTInstalled.png

 * 실제로 컴파일이나 빌드를 시도하면 에러가 날 수 있는데, 이 경우는 윈도우용 컴파일러를 제대로 찾지못해서입니다. 여기서는 MinGW 을 이용한 gcc 를 이용하도록 합니다.
 * http://sourceforge.net/project/showfiles.php?group_id=2435 에가서 Current 중 최신의 MinGW 을 받습니다 - 문서 작성 시점 기준해서 {{{Download MinGW-4.1.0.exe}}} 을 받습니다.
 * 2006-05-10 현재 MinGW-5.0.2.exe이며, 설치시 선택한 옵션에 따라 설치할 패키지를 내려받아 설치합니다.  -민우-
 * MinGW 을 full installation 합니다(MinGW-5.0.2.exe에서 g++와 make 만 선택하면 됩니다  -민우-).
 * 그리고 윈도우 환경변수 중 PATH 에 설치된 MinGW 폴더 밑의 bin 을 추가합니다.

attachment:eclipseMinGWPATH.png

 * eclipse 를 닫고 새로 띄웁니다.
 * C/C++ 프로젝트를 만들 때, Standard Make Proejct 를 선택하고, Make Builder Tab 에서 Build Command 를 mingw32-make -k 로 해줍니다. mingw32-make 는 MinGW 가 설치된 폴더 밑의 bin 에 있는 실행 파일명입니다. 이미 만들어진 프로젝트라면 Project 의 등록정보에서 수정할 수 있습니다.
   - cdt-3.0.2에선 속성 대화 상자의 모양새가 많이 바뀌었습니다. 그에 맞게 문서 개정이 되어야 할 것 같습니다. -민우-

attachment:eclipseBuildCommand.png



 * 빌드를 해봅니다.
=== gdb 를 이용해 debugging 환경 만들기 ===

 위의 순서에 따라 프로그램에 대한 컴파일, 빌드, 실행이 가능하다면 gdb 를 이용한 디버깅은 간단하다. http://www.mingw.org 에 가서 Download 에 간 후 gdbX.X.X.exe 라는 설치 파일을 받아서 MinGW 설치 폴더 된 곳에 깔면 mingw32-make.exe 가 있는 곳에 gdb.exe 파일이 설치된다. 그런 후 eclipse 를 이용해 디버깅을 하면 된다.
   -- 위에서 MinGW를 full로 설치하면 gdb.exe도 같이 설치 됩니다 -Gomdori
    -- MinGW 4.1.1 의 경우 make 와 gdb 모두 따로 설치해야 하더군요. -Reiot
=== win32 hello world 테스트하기 ===

 다음의 코드를 main.cpp 라는 파일에 쓴 후 빌드해봅시다.

{{{#!vim c
#include <windows.h>

int WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
	MessageBox(NULL, "Hello in EclipseCDT", "EclipseCDT", MB_OK);
	return 0;
}
}}}

==== 윈도우 프로그래밍시에 console 창 없애기 ====

 아래 그림처럼 링커 옵션에 -mwindows 를 넣어주면 됩니다.

attachment:eclipseCDTForWindowsProgramming.png

==== newline warning 없애기 ====

 C99 등의 표준에서 소스 파일의 제일 마지막 줄에 빈 줄이 있어야 한다. 만약 없으면 컴파일러가 경고를 내는데, 다음과 같은 옵션을 켜서 이 경고를 막아보자.

{{{
메뉴 중 Window -> Preferences -> C/C++ -> Editor -> Ensure newline at end of file when saving 를 체크한다. 
}}}

 === FAQ ===

 Q : 앞의 방법대로 했는데도 빌드 오류가 납니다.

 A : 윈도우의 시작 -> 실행 -> cmd.exe 로 커맨드창을 띄운 후 커맨드창에 `mingw32-make` 라고 친 후 엔터를 쳐서 찾을 수 없는 파일이라면 PATH 지정이 잘못된 경우 입니다. PATH 를 제대로 설정해주지 않았거나, 혹은 Build Command 를 제대로 수정하지 않은 지 확인해보세요.

 Q : 컴파일은 되는데 콘솔에 출력이 되지 않습니다. 예:printf("hello")

 A : 윈도우와 맥에서 버전 3.0.1까지의 CDT에 심각한 버그가 있습니다. 3.0.2에서 고쳐질것이라고 합니다. (06년2월15일 현재 확인해보니 3.0.2 릴리즈됐습니다) 3.0.1에서 되게 하려면 다음 방법이 있습니다.

- (설치되어 있지 않다면) CDT 3.0.1을 설치한다.

- (실행되어 있다면) 이클립스를 종료한다.

- http://max.berger.name/tmp/cdtcore.jar 이파일을 eclipse\plugins\org.eclipse.cdt.core_3.0.1 이 디렉토리에 덮어쓴다.

- 이클립스를 다시 시작한다.

 Q : 디버깅을 시작하면 main 함수에 브레이크 포인트를 걸어도 그 전에 오류가 나면서 제대로 디버깅이 되지 않습니다.

 A : mingw 의 GDB 를 RC 나 Beta 가 아닌 Current 버젼을 깔아보세요.


- 출처 : https://bugs.eclipse.org/bugs/show_bug.cgi?id=102043

** 다운로드 해보면 파일 이름이 cdtcore.zip로 되어 있으니 cdtcore.jar로 바꾸세요.
----
 아직 조금 부족한데 차차 채워나가도록 하겠습니다. 다른 분들도 많이 도와주세요 ^^


----
 문서 만들기 시작한 이 : 김진욱(zelon) - http://www.wimy.com

----
 http://bbs.kldp.org/viewtopic.php?t=53592 에 제가 비슷한 주제로 글을 올려두었습니다. managed makefile project를 쓰려면 mingw32-make.exe를 make.exe로 이름을 바꾸어 사용하면 됩니다.