Development/C

toolchain 이란

linuxism 2011. 2. 12. 14:11

tool chain 이란 embedded system에서 자주 사용되는 말로

 

"원하는 Target System의 소프트웨어 개발을 하기 위한 Host System Compile 환경"을 의미합니다.

 

여기서 Compile 환경은 주로 Target Host가 다르기 때문에 흔히

크로스-컴파일 환경이란 말로 사용됩니다만 꼭 Target Host System이 다를 필요가 없기 때문에 그냥 Compile 환경이라고 했습니다.

 

질문자님의 경우를 보면 우선

 

Target System : Windows 환경

Host System : Windows 환경

 

입니다. 그러니까 Target System Host System 이 같은 경우입니다.

 

이제 부터 Compile 환경에 대해 이야기 해 봅시다.

 

얼핏 Eclipse가 컴파일러 같지만 사실 Eclipse Java 용 컴파일러만 내장하고 있고C++는 컴파일러가 내장되어 있지 않습니다.

그렇기 때문에 Eclipse C++ 를 컴파일 하고 싶다면 컴파일러를 설정하여 주어야 합니다.

여기에 단순히 하나의 컴파일러만 사용되는 것이 아니라 일반적으로

 

컴파일러

링커

바이너리 변환기(bin2exe, binutils 같은 프로그램)

 

등이 사용되고 이 Tool 들이 연속적으로 사용되기 때문에(컴파일한 후 링크하고

바이너리로 변환) chain 으로 불립니다.

 

Eclipse로 프로그램을 작성하지만 Eclipse에서 제공할 수 있는 것은 Edit 기능과 Project관리 기능 및 Tool chain 들의 사용법대로 호출해주는 것만 할 수 있지요.

 

우선 대부분의 프로그래머들이 Eclipse C++ 컴파일러로 gcc를 사용합니다.

gcc를 사용해서 컴파일한 후에 링크하고 binutils 같은 프로그램으로 윈도우즈용 실행 파일인 .exe 파일을 만드는 것이죠.

 

일반적으로 이 일들을 한 번에 해주는 tool이 바로 MinGW CygWin 입니다.

복잡한 Tool chain이 필요없이 MinGW CygWin 만 있으면 바로 소스코드에서

윈도우즈용 .exe 파일을 만들 수 있는 것이죠.

 

eclipse에서 C++를 사용하기 위해서는 우선 맨 먼저 해야 할 일이 이 Tool chain을 먼저 선택해서 설치를 해야 합니다. 왜냐하면 eclipse 자체에서는 C++ 컴파일 환경을 가지고 있지 않다고 했죠!

 

CygWin  http://www.cygwin.com

MinGW  http://www.mingw.org

 

에서 다운로드 가능합니다. 당연히 모두 Open source입니다. 저는 mingw를 추천하지만 cygwin도 똑 같이 아무 문제 없이 윈도우즈용 프로그램을 만들 수 있습니다.

 

여러 가지(컴파일러-링크-binutil)가 있어 Tool chain 이라고 했지만 mingw cygwin은 하나만 설치하면 안에 다 있어서 간단해서 좋습니다.

 

그 다음 eclipse CDT를 설치합니다. 아마도 질문자께서는 이미 CDT는 설치하지 않았나 싶습니다. 현재 CDT 4.0이 나와 있습니다. CDT eclipse에서 C/C++를 개발하는 데 필요한 Plug-in입니다.

 

설치파일 다운로드

http://www.eclipse.org/cdt/downloads.php

 

간단한 도움말

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.user/concepts/cdt_c_whatsnew.htm

 

그리고 eclipse에서 C/C++를 개발하려면 make utility의 사용법을 조금 배우는 것이 좋습니다. makefile이 필요 없는 프로젝트를 만들 수도 있지만 아무래도 make 를 쓸 줄 모르면 낭패를 당하기 쉽습니다.

 

 

xtelite 

파워 

식물신

 

채택 2059 (89.7%)

http://kinimage.naver.net/storage/userfiles/42/38/xtelite.png

http://blog.naver.com/xtelite