예제로 살짝 맛보는 Eclipse CDT

atie의 이미지

저는 업으로 c/c++ 프로그래밍을 하지는 않습니다. 그러니 아래의 글도 그저 오픈소스를 재미있게 보는 하나의 방법으로, 그리고 Eclipse CDT에 관심을 가지는 소개의 글 정도로 읽어주세요.

이 글을 위한 예는 Last.fm player인 vagalume제 이전 블로그에 예로 든 osmo 두 개를 택했습니다. 둘다 c로만 작성이 되어있고 프로젝트의 크기도 적당하며, 독립적인 실행이 가능하여 CDT에서 gdb를 통해 소스를 보는 재미도 있습니다.

1) vagalume
- 우선 svn 저장소을 둘러보고, 터미널을 열어 적당한 곳에 checkout 합니다.
cd ~/src/
svn checkout https://garage.maemo.org/svn/vagalume

- eclipse를 실행합니다. (eclipse_3.4/cdt_5.0 기준으로 설명합니다.)
- "Project Explorer"에서 오른쪽 클릭 - New - C Project 선택하고,
- 대화창에서 프로젝트 이름은 vagalume, 기본 위치 사용 찍고, "Makefile project" -Hello World C++ Project, 툴체인 Linux GCC를 선택합니다.
- vagalume라는 프로젝트에 생성된 vagalume.cpp와 Makefile 둘 다 삭제합니다.
- 터미널 창에서 다음의 명령을 실행합니다.

cp -r ~/src/vagalume/* ~/workspace/vagalume/
cd ~/workspace/vagalume/
./autogen.sh
./configure --prefix=/usr

- 다시 이클립스 vagalume 프로젝트에서 Refresh (F5)하고, Build Project 합니다.
- vagalume - src 폴더 아래에 vagalume이라는 실행 파일이 생기고 디버그 가능 표시가 생깁니다. 그 파일을 실행하거나 디버그하여 소스 라인을 Debug perspective에서 따라가 볼 수 있습니다.

2) osmo

svn co https://osmo-pim.svn.sourceforge.net/svnroot/osmo-pim/trunk osmo
로 체크아웃하고 ~/workspace/osmo에 복사해 놓은 것은 동일합니다. 복사를 먼저 해놓고 Makefile 프로젝트를 이클립스에서 만드는 경우는 Makefile이 이미 존재한다고 나오는 것을 무시하고 "프로젝트명.cpp" 파일만 지워주면 됩니다.

- autogen.sh 실행 후, 다음 명령을 사용해서 디버그 정보를 생성할 것을 지정합니다. 참고로, 옵션을 아는 것은 configure.ac 파일을 살펴보면 됩니다.

./configure --prefix=/usr --enable-debug

- 이클립스에서 프로젝트를 빌드하고, 프로젝트 정보의 Run/Debug Settings를 선택합니다.
- 새 실행 설정 버튼을 누르고, 대화창에서 C/C++ Application의 열람 버튼을 눌러 src/osmo 파일을 등록합니다.
- 첨부한 그림은 osmo의 디버깅 화면입니다.

자, 그럼 gdb를 GUI로도 즐겨보세요.

File attachments: 
첨부파일 크기
Image icon eclipse-cdt.png293.36 KB

댓글

appler의 이미지

집에가서 즐겨 보아야 겠군요..ㅎㅎㅎ;;

좋은 정보 감사!!


laziness, impatience, hubris

不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.


laziness, impatience, hubris

不恥下問 - 진정으로 대화를 원하면 겸손하게 모르는 것은 모른다고 말하는 용기가 필요하다.

flymc83의 이미지

초보라서..^^; 되면 한번해보아야겠어요~ 좋은정보같습니다 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.