1. 도구개요 소개 CDT(C/C++ Development Toolkit) 는 Eclipse plug-in 중하나로 C/C++ 개발을위한통합개발환경 (IDE : Integrated Development Environment) 주요기능 Code 의 Edit, Compile, Debug, Unit test, Performance monitoring 등 카테고리 세부카테고리 IDE 커버리지 C/C++ 도구난이도중 라이선스형태 / 비용 Eclipse Public License 사전설치도구 Eclipse, C/C++ Compiler / Debugger 운영체제 MS Windows, Linux, Mac OS X, UNIX 최신버전 4.2 (2012. 10) 특징 CDT 는사용자에게 C/C++ 개발환경을제공함. 그러나 CDT 는 compiler 나 debugger 를포함하지는 않기때문에이도구들을별도로설치 MS Windows 의경우는 Cygwin 과 Mingw 를설치 적용회사 / 프로젝트관련도구제작사공식홈페이지 C/C++ 을기반으로개발하는프로젝트 Eclipse, GCC (GNU Compiler Collection), Cygwin, Mingw Eclipse Foundation http://www.eclipse.org/cdt/ 1
2. 기능요약 CDT 는 Eclipse platform 을위한 plug-in 으로, Java 언어로구현된 Open source 프로젝트 주요기능사용자환경에따른 Perspective 컴파일러 Refactoring Parser Search Engine Content Assist Provider Makefile generator 지원여부 지원 설치필요, 선택가능 (Cygwin, Mingw) 지원 지원 지원 지원 지원 1
3. 도구실행환경 JDK(Java development kit) 상에서설치및구현이가능 다양한 OS 를지원 Windows : Windows XP / Windows 7 (32, 64-bit 모두지원 ) Linux : 32, 64-bit 지원 Mac OS X : 32, 64-bit 지원 UNIX : 32, 64-bit 지원 자바기반프로그램 : JDK(Java development kit) 필요 C/C++ : Compiler / Debugger 필요 Cygwin, Ming 등 (Compiler / Debugger 에따라 OS 환경이달라질수있음 ) C++ Compiler / Debugger JDK (Java development kit) Windows / Linux / Mac OS / UNIX 1
4. 도구설치방법 세부목차 4.1 JDK 다운받기 4.2 Cygwin 다운받기 / 설치하기 4.3 Mingw 다운받기 4.4 를직접설치하기 1
4. 도구설치방법 4.1 JDK 다운받기 다음의사이트에서 JDK 를다운 http://www.oracle.com/technetwork/java/javase/downloads/index.html Download JDK 를클릭하여다운받고설치 2
4. 도구설치방법 4.2 Cygwin 다운받기 / 설치하기 (1/4) MS Windows 의경우다음사이트에서 cygwin 설치파일을다운 http://www.cygwin.com/ 3
4. 도구설치방법 4.2 Cygwin 다운받기 / 설치하기 (2/4) 다운받은 Cygwin 파일로설치시작 Install from internet : 인터넷으로나머지설치파일을받아야할경우선택 Download Without Installing: 설치파일을다운받고설치를진행하지않을경우선택 Install from Local Directory: 이미받아둔설치파일을이용하여설치할경우 4
4. 도구설치방법 4.2 Cygwin 다운받기 / 설치하기 (3/4) 설치할 Directory 를선택 사용자의권한에대한추가선택가능 나머지설치파일을다운받을 Directory 를선택 5
4. 도구설치방법 4.2 Cygwin 다운받기 / 설치하기 (4/4) Directory Connection, Use IE5 Settings, Use HTTP/FTP Proxy 중하나를선택 나머지설치파일을받을사이트를선택 국내사이트인 ftp://ftp.kaist.ac.kr 을선택 이후선택사항에서패키지선택후완료 6
4. 도구설치방법 4.3 Mingw 다운받기 (1/3) Mingw 다운받기 : ttp://www.mingw.org/wiki/getting_started 에서다운로드 mingw-get-inst 클릭 7
4. 도구설치방법 4.3 Mingw 다운받기 (2/3) Mingw 다운받기 최신버전클릭 8
4. 도구설치방법 4.3 Mingw 다운받기 (3/3) Mingw 다운받기 설치파일클릭 9
4. 도구설치방법 4.4 다운받기 / 설치하기 (1/4) http://www.eclipse.org/downloads/ 에방문하여다운로드클릭 자신에게해당하는운영체제와 bit 를고려하여다운로드 10
4. 도구설치방법 4.4 다운받기 / 설치하기 (2/4) http://www.eclipse.org/downloads/ 에방문하여다운로드클릭 다운로드아이콘을클릭하여다운로드 11
4. 도구설치방법 4.4 다운받기 / 설치하기 (3/4) 다운받은파일의압축을풀고 eclipse.exe 파일을실행 12
4. 도구설치방법 4.4 다운받기 / 설치하기 (4/4) 생성된프로젝트들이저장될 workspace 를지정 ❶ 을체크하면다음실행시에 workspace 의위치를묻지않음 원하는 workspace 를선택하고확인을눌러 Eclipse 를실행 ❶ ❷ ❸ 13
5. 도구기능소개 개요및세부목차 5.1 주요기능소개 5.2 프로젝트생성하기 5.3 프로젝트 Build하기 5.4 프로젝트실행하기 5.5 프로젝트 Debugging하기 1
5. 도구기능소개 5.1 주요기능 (1/2) CDT 는 Eclipse platform 을위한 plug-in 으로, Java 언어로구현된 Open source 프로젝트 C/C++ perspective는다음과같은기능을포함하고있습니다. C/C++ Editor C/C++ Debugger C/C++ Launcher Parser Search Engine Content Assist Provider Makefile generator [ 메인화면 ] 2
5. 도구기능소개 5.1 주요기능 (2/2) CDT plug-in 의구조 CDT : "framework" CDT Plug-in CDT Feature Eclipse : CDT Feature Component 제공 CDT Core : Core Model, CDOM, Core Components 제공 CDT UI : Core UI, view, editor, wizard 제공 CDT Launch : Compiler 와 debugger 같은외부툴을위한시작 mechanism 을제공 CDT Debug Core : Debugging 기능을제공 CDT Debug UI : CDT Debugging editor, view, wizard 용사용자 interface 를제공 CDT Debug MI : MI 호홖 debugger 용애플리케이션 connector Eclipse Platform은개발을위한 Framework : C/C++ compiler, debugger 미포함 C/C++ application을build하고debugging하기위해서는외부도구들이필요 Cygwin Mingw GCC Gdb [ 메인화면 ] 3
5. 도구기능소개 5.2 프로젝트생성하기 (1/7) Project Explore 나메뉴에서 Project wizard 를선택 4
5. 도구기능소개 5.2 프로젝트생성하기 (2/7) Project wizard : 프로젝트생성을지원 (C/C++ Project) 5
5. 도구기능소개 5.2 프로젝트생성하기 (3/7) C Project 와 C++ Project : 각각의 Executable Project, Library, MakeFile Project 생성가능 CDT 의모든프로젝트는 toolchain 을선택할수있다 개발하는컴퓨터에설치되어있는 Build Module 을리스트로출력되며원하는 toolchain 선택가능 6
5. 도구기능소개 5.2 프로젝트생성하기 (4/7) 아래와같이작성한내용은자동으로생성된 HelloWorld Code 파일의주석으로기록 7
5. 도구기능소개 5.2 프로젝트생성하기 (5/7) Debug mode 와 Release mode 의선택 선택한 mode 에따라폴더가생성되고프로젝트를 Build 한 mode 에따라해당폴더에 Binary 가생성 8
5. 도구기능소개 5.2 프로젝트생성하기 (6/7) CDT 는 Makefile 로관리되는프로젝트를지원 9
5. 도구기능소개 5.2 프로젝트생성하기 (7/7) CDT 는다른프로젝트에서사용할 Library 를개발하는프로젝트를지원 10
5. 도구기능소개 5.3 프로젝트 Build 하기 (1/3) 기본으로생성된 HelloWorld C++ 프로젝트 11
5. 도구기능소개 5.3 프로젝트 Build 하기 (2/3) 프로젝트 Build : Build 의진행 단축아이콘 Build / Project Explore 에서프로젝트선택후 Build 12
5. 도구기능소개 5.3 프로젝트 Build 하기 (3/3) 프로젝트 Build : Build 결과 Binary 파일이생성된것을확인할수있음 13
5. 도구기능소개 5.4 프로젝트실행하기 (1/2) 프로젝트실행 : 홖경설정 실행하는홖경에대한사용자의정의를포함할수있도록 Launch configuration 을지원 14
5. 도구기능소개 5.4 프로젝트실행하기 (2/2) 프로젝트실행 : 실행결과 갂단한 print 문의 consol view 출력 15
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (1/8) Debug : Debug 홖경설정 (Debug Configuration) Preferred Launcher 가선택되지않으면 Debug 를실행할수없다 : 경고문구선택 Launcher 선택 16
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (2/8) Debugging 을위한 GDB Process Launcher 를사용 17
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (3/8) Debugging 의시작 CDT Perspective 로전홖하는경고팝업 : Remember my decision 선택시차후에다시묻지않음 18
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (4/8) 해당프로젝트가 Debugging 을위한 perspective 전홖 19
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (5/8) Debug View Debug view 에서다음과같은단축아이콘으로프로젝트 Debugging 을진행 제공되는단축아이콘의단축키및설명 항목기능 Resume[F8] Terminate StepInto[F5] StepOver[F6] StepOut[F7] 잠시중단된쓰레드를재개선택된 Debug대상을종료합니다하이라이트된함수안으로진입하이라이트된부분을건너뜀현재선택된메소드부분을벗어남 20
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (6/8) Modules View 해당프로젝트가포함하고있는 Library 리스트를출력 Registers View 프로젝트가현재 OS 의 Register 사용값을보임 21
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (7/8) Breakpoints View 사용자가프로젝트에지정해놓은프로젝트의 Breakpoint 리스트를임 사용자는왼쪽의체크버튺을이용하여 Breakpoint 를임시적으로사용또는비사용으로설정 Variables View 프로젝트가특정 Breakpoint 까지진행되는경우변수들의값을보여주는 view 22
5. 도구기능소개 5.5 프로젝트 Debugging 하기 (8/8) C/C++ perspective 로돌아가려면화면오른쪽상단에있는전홖기능을사용 23
6. 도구활용예제 세부목차 6.1 예제소개 6.2 프로젝트생성 6.3 프로그램 Code 작성 6.4 프로젝트의 Build 6.5 프로젝트의실행 1
6. 도구활용예제 6.1 예제소개 예제시스템 : 성적계산프로그램 성적계산프로그램요구사항 ( 일부 ) 100점만점을기준으로하는 3개의점수를입력받는다. 총점, 평균, 학점을계산하여출력하는프로그램을작성핚다 - 학점은만점부터 90점대는 A, 80점대는 B, 70점대는 C, 이외의점수는 F를부여핚다 - 소수점은아래두자리숫자까지표시하는것을원칙으로핚다. 2
6. 도구활용예제 6.2 프로젝트생성 (1/2) 프로젝트생성 : TestScore 해당프로젝트는 C 기반으로생성하고, Empty Project 를선택 Toolchain 를선택 3
6. 도구활용예제 6.2 프로젝트생성 (2/2) 코드생성 : score.c Code 를생성핛 source 폴더 (src) 생성 score.c 생성 4
6. 도구활용예제 6.3 프로그램 Code 작성 score.c 의내용 #include <stdio.h> #include <conio.h> inttotal(int, int, int); double avg(int, int); char grade(double); void main(intargc, char* args[]){ intscore1, score2, score3; inttotal_score; double avg_score; char grade_score; if((args[1]==null) (args[2] == NULL) (args[3]==null)){ printf(" 점수 3 개를넣어주세요. \n"); return; } } printf("1 번째성적 : %s \n", args[1]); score1 = atoi(args[1]); printf("2 번째성적 : %s \n", args[2]); score2 = atoi(args[2]); printf("3 번째성적 : %s \n", args[3]); score3 = atoi(args[3]); //get total total_score= total(score1, score2, score3); printf(" 총점 : %d \n", total_score); //get avg avg_score= avg(total_score, 3); printf(" 평균 : %.2lf \n", avg_score); //get grade grade_score= grade(avg_score); printf(" 학점 : %c \n", grade_score); inttotal(intin1, intin2, intin3){ return in1+in2+in3; } double avg(intin_total, intin_cnt){ return (double)in_total/(double)in_cnt; } char grade(double in_avg){ char re_val; } switch((int)(in_avg/10)){ case 10: case 9: re_val= 'A'; break; case 8: re_val= 'B'; break; case 7: re_val= 'C'; break; default: re_val= 'F'; break; } return re_val; 5
6. 도구활용예제 6.4 프로젝트의 Build 프로젝트 Build 하기 : 프로젝트선택 Build 아이콘클릭 6
6. 도구활용예제 6.5 프로젝트의실행 (1/2) 프로젝트의실행 : Run configuration 설정 Run configuration 생성 arguments Tab 을선택하여 3 개의인자값설정 7
6. 도구활용예제 6.5 프로젝트의실행 (2/2) 프로젝트의실행 : 결과 예시이외에도파일과 Directory 가여러개인복잡핚프로젝트도진행가능 8
7. FAQ 질문 1) CDT 가새로설치한 Compiler 를인식하지못합니다. 답변 1 : CDT 가실행된상태로 Compiler 를설치하였다면 CDT 는이를실시간으로인식하지못합니다. CDT 를재실행하면됩니다. 질문 2) MinGW 를설치한후 CDT 를실행하였습니다. 그러나이를인식하지못합니다. 답변 2 : 환경변수에설치한 MinGW 가정상적으로등록되어있는지확인해야합니다. 만약 MinGW 등록이잘못되었다면 CDT 는 MinGW 가설치되었는지알수있는방법이없습니다. 1
8. 도구평가 활용성 가장많이쓰는도구중하나읶 Eclipse 를통해 C/C++ 를추가로구현할수있다. 범용성 원하는컴파읷러를지정하여사용할수있다. 호환성 Compiler/Debugger 의영향을받으나, 호환성문제가발생할시 Compiler 를변경하여해결이가능 성능 읷반적읶 IDE 구동성능을보임 기타 Eclipse에익숙한 C/C++ 개발자에게유리 도구평가의견 CDT는여러종류의 Compiler 를등록한상태에서프로젝트에따라사용자가원하는 Compiler 를선택하여지정 CDT는 Debugging 툴이설치되어있다면사용자가편하게 Debugging 기능을수행할수있도록 Debugging 환경을제공 CDT의 Code Edit는사용자가원하는대로 Setting 이가능하여개인별로원하는설정상태에서 Code개발이가능하도록지원 Source code의구성을체계적으로재정비할수있는 refactoring 기능지원 1
9. 용어정리 본매뉴얼에서사용하고있는용어의정리 Parser 파서는 Compiler 의일부로서, 프로그램언어의명령문을입력으로컴퓨터에의해처리될수있도록구문을분석하는도구 Perspective Tool chain Eclipse 는사용자의선택에따라다수의 view 와 Editor 영역으로구성됨. Eclipse 는어떤종류의프로젝트인가에따라어떤 View 와 Editor 를띄워줄지결정하고이러한구성이저장되어있는것이 perspective 이다. 프로그램개발툴의집합으로특정 Target 의환경에맞춰진상태로묶은것을의미. 사용자가프로젝트를개발하기위한환경 (Text editor, Compiler, Linker) 이저장된단위라고할수있다. 1