윈도우즈에서도 기본적으로 프로그래밍이 가능하고 GUI 프로그램 또한 제작 가능하듯이 리눅스 또한 GUI 프로그램이 제작 가능합니다. 물론 편하게 하기 위해서 QT, GTK, wxWidget 등의 라이브러리를 사용할 수 있습니다. IDE 또한 Eclipse 라는 좋은 IDE 가 나와 CDT를 이용하여 프로그래밍을 할 수도 있죠. 하지만 저 같은 경우는 또 다른 방법을 적어보려 합니다. 바로 KDevelop 를 이용한 개발입니다.
KDevelop 는 KDE 환경의 일부인 개발툴 입니다. 접두어가 K 라는 것만 보아도 알 수 있죠. 일단 이 부분을 한 번 깔아보도록 합시다. 제가 사용하는 리눅스는 Kubuntu 7.10 입니다.
위와같이 콘솔을 띄우게 한 뒤, 아래의 명령어를 입력하여 봅니다.
apt-get 을 이용하여 kdevelop 를 저장소에서 다운로드하여 받게 하려고 하니 46.6 메가의 공간을 사용하게 되며, 7개를 새로 설치합니다 등의 정보를 알려주는 군요. 문제 없이 그냥 Y 합니다.
Y를 누르게 되면 cdrom 이 필요하게 됩니다. 물론 설치할 때 사용했었던 미디어를 넣어주면 OK 입니다. dvd-rom 이나 cd-rom 이나 한 번 넣어보도록 하죠.
주르르륵 알아서 설치해줍니다. 세상 참 많이 편해졌습니다. redhat 때 하나하나 rpm 패키지 찾아가며 의존성 찾아가며 설치했는데 말이죠^^. 그 때도 yum 인가 하는 업그레이드 툴로 편히 사용할 수 있었는지는 모르겠네요.
일단 설치가 완료되면 메뉴 -> 개발 -> KDevelop -> KDevelop: C/C++ IDE for C/C++ 를 선택하여 실행해 봅니다. Splash 창이 하나 뜨면서 로딩이 주르르륵 됩니다. 아하 이제 개발툴 은 환경이 되었군요. 그럼 아주 간단하게 설정은 되었네요. 첫 발걸음으로 역시나 "Hello World!"를 찍어 봅시다. KDevelop 화면에서 프로젝트 -> 뉴 프로젝트 -> C++ -> Simple Hello World Program 을 선택하여 봅시다. Application 이름은 원하시는 대로 적으시면 되겠죠?
그리고 완료를 누르시면 CVS, 등을 설정화면이 나오게 되고 그 것도 설정 하시면 다음과 같은 소스가 표시됩니다.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
코드가 자동 생성 되는군요. 그런데 컴파일 키를 모릅니다!!. 메뉴를 보니 Build 메뉴에 Execute Program 이 Shift + F9 번키로 설정이 되어있군요. 키를 눌러봅니다!!
어!! 컴파일이 안되고 에러가 발생합니다.
에러의 원인은 aclocal 명령을 찾지 못한것이네요. 그럼 이 것도 설치를 해주어야 합니다. apt-get 신공 들어갑니다. 그런데 aclocal 을 apt-get 으로 해보니 꾸러미가 없답니다!! 그럼 무엇인지 모르겠습니다. 일단 aclocal 을 콘솔에서 쳐봅시다.
아하~ automake를 설치하면 되네요. 자자 에러의 원인을 알았으니. automake 설치에 들어갑시다~
설치를 다한 다음 다시 KDevelop로 돌아가서 Shift + F9 를 눌러봅니다. 그런데 또 에러가 발생합니다. 잘 되는것 같더니 안되네요.
에러가 발생 했는데 자세히 보고 싶으면 config.log 를 보랍니다. 에휴 뭐이리 문제점이 많답니까~ 그래도 어쩔수 있나요 급한 사람이 우물 판다고 보고 해결해야죠. config.log 파일을 열어봤더니 대충 에러의 원인이 파악됩니다.
g++ 을 못찾는다고 하네요. 컴파일러가 없는 것입니다. 아뿔싸 껍데기만 존재했네요. 그럼 서둘러 설치해줍니다. sudo apt-get install build-essential 을 실행합시다. build-essential 은 빌드에 필요한 구성요소를 설치해주는 꾸러미입니다.
하하하 Y 를 눌러 설치를 하고 KDevelop 에 다시 돌아가서 Shift + F9 키를 눌러봅니다! 결과물이 표시됩니다. "Hello World!" 잘 뜨는군요. 산을 조금 넘긴 넘었습니다. 콘솔은 간단하게 했는데 GUI도 해보고 싶어 지네요.내일 시간으로 한 번 해보는 게 좋을것 같습니다.
KDevelop 는 KDE 환경의 일부인 개발툴 입니다. 접두어가 K 라는 것만 보아도 알 수 있죠. 일단 이 부분을 한 번 깔아보도록 합시다. 제가 사용하는 리눅스는 Kubuntu 7.10 입니다.
위와같이 콘솔을 띄우게 한 뒤, 아래의 명령어를 입력하여 봅니다.
filepointer@filepointer-desktop:~$ sudo apt-get install kdevelop
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
Reading state information... 완료
다음 꾸러미를 더 설치할 것입니다:
cvs kdevelop-data libapr1 libaprutil1 libcvsservice0 libsvn1
제안하는 꾸러미:
libqt3-mt-dev kdelibs4-dev sgmltools-lite gettext qt3-dev-tools kbabel
kiconedit kdesdk-scripts graphviz exuberant-ctags kdelibs4-doc qt3-doc cmake
추천하는 꾸러미:
kdevelop-doc libtool autoconf automaken
다음 새 꾸러미를 설치할 것입니다:
cvs kdevelop kdevelop-data libapr1 libaprutil1 libcvsservice0 libsvn1
0개 업그레이드, 7개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
12.4M바이트/15.1M바이트 아카이브를 받아야 합니다.
압축을 풀면 46.6M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
Reading state information... 완료
다음 꾸러미를 더 설치할 것입니다:
cvs kdevelop-data libapr1 libaprutil1 libcvsservice0 libsvn1
제안하는 꾸러미:
libqt3-mt-dev kdelibs4-dev sgmltools-lite gettext qt3-dev-tools kbabel
kiconedit kdesdk-scripts graphviz exuberant-ctags kdelibs4-doc qt3-doc cmake
추천하는 꾸러미:
kdevelop-doc libtool autoconf automaken
다음 새 꾸러미를 설치할 것입니다:
cvs kdevelop kdevelop-data libapr1 libaprutil1 libcvsservice0 libsvn1
0개 업그레이드, 7개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
12.4M바이트/15.1M바이트 아카이브를 받아야 합니다.
압축을 풀면 46.6M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?
apt-get 을 이용하여 kdevelop 를 저장소에서 다운로드하여 받게 하려고 하니 46.6 메가의 공간을 사용하게 되며, 7개를 새로 설치합니다 등의 정보를 알려주는 군요. 문제 없이 그냥 Y 합니다.
미디어 바꾸기: '/cdrom/' 드라이브에 다음 레이블이 달린
디스크를 넣고 enter를 누르십시오
'Kubuntu 7.10 _Gutsy Gibbon_ - Release amd64 (20071016.1)'
디스크를 넣고 enter를 누르십시오
'Kubuntu 7.10 _Gutsy Gibbon_ - Release amd64 (20071016.1)'
Y를 누르게 되면 cdrom 이 필요하게 됩니다. 물론 설치할 때 사용했었던 미디어를 넣어주면 OK 입니다. dvd-rom 이나 cd-rom 이나 한 번 넣어보도록 하죠.
내려받기 2바이트, 소요시간 7m36s (0바이트/초)
꾸러미들을 미리 설정하는 중입니다...
전에 선택하지 않은 cvs 꾸러미를 선택합니다.
(데이터베이스 읽는중 ...현재 85898개의 파일과 디렉토리가 설치되어 있습니다.)
cvs 꾸러미를 푸는 중입니다 (.../c/cvs/cvs_1.12.13-8_amd64.deb에서) ...
전에 선택하지 않은 libapr1 꾸러미를 선택합니다.
libapr1 꾸러미를 푸는 중입니다 (.../libapr1_1.2.7-8.2ubuntu1_amd64.deb에서) ...
전에 선택하지 않은 libaprutil1 꾸러미를 선택합니다.
libaprutil1 꾸러미를 푸는 중입니다 (.../libaprutil1_1.2.7+dfsg-2build1_amd64.deb에서) ...
전에 선택하지 않은 libcvsservice0 꾸러미를 선택합니다.
libcvsservice0 꾸러미를 푸는 중입니다 (.../libcvsservice0_3.5.8-0ubuntu1_amd64.deb에서) ...
전에 선택하지 않은 libsvn1 꾸러미를 선택합니다.
libsvn1 꾸러미를 푸는 중입니다 (.../libsvn1_1.4.4dfsg1-1ubuntu3_amd64.deb에서) ...
전에 선택하지 않은 kdevelop-data 꾸러미를 선택합니다.
kdevelop-data 꾸러미를 푸는 중입니다 (.../kdevelop-data_4%3a3.5.0-0ubuntu2.1_all.deb에서) ...
전에 선택하지 않은 kdevelop 꾸러미를 선택합니다.
kdevelop 꾸러미를 푸는 중입니다 (.../kdevelop_4%3a3.5.0-0ubuntu2.1_amd64.deb에서) ...
cvs (1:1.12.13-8) 설정하는 중입니다 ...
꾸러미들을 미리 설정하는 중입니다...
전에 선택하지 않은 cvs 꾸러미를 선택합니다.
(데이터베이스 읽는중 ...현재 85898개의 파일과 디렉토리가 설치되어 있습니다.)
cvs 꾸러미를 푸는 중입니다 (.../c/cvs/cvs_1.12.13-8_amd64.deb에서) ...
전에 선택하지 않은 libapr1 꾸러미를 선택합니다.
libapr1 꾸러미를 푸는 중입니다 (.../libapr1_1.2.7-8.2ubuntu1_amd64.deb에서) ...
전에 선택하지 않은 libaprutil1 꾸러미를 선택합니다.
libaprutil1 꾸러미를 푸는 중입니다 (.../libaprutil1_1.2.7+dfsg-2build1_amd64.deb에서) ...
전에 선택하지 않은 libcvsservice0 꾸러미를 선택합니다.
libcvsservice0 꾸러미를 푸는 중입니다 (.../libcvsservice0_3.5.8-0ubuntu1_amd64.deb에서) ...
전에 선택하지 않은 libsvn1 꾸러미를 선택합니다.
libsvn1 꾸러미를 푸는 중입니다 (.../libsvn1_1.4.4dfsg1-1ubuntu3_amd64.deb에서) ...
전에 선택하지 않은 kdevelop-data 꾸러미를 선택합니다.
kdevelop-data 꾸러미를 푸는 중입니다 (.../kdevelop-data_4%3a3.5.0-0ubuntu2.1_all.deb에서) ...
전에 선택하지 않은 kdevelop 꾸러미를 선택합니다.
kdevelop 꾸러미를 푸는 중입니다 (.../kdevelop_4%3a3.5.0-0ubuntu2.1_amd64.deb에서) ...
cvs (1:1.12.13-8) 설정하는 중입니다 ...
libapr1 (1.2.7-8.2ubuntu1) 설정하는 중입니다 ...
libaprutil1 (1.2.7+dfsg-2build1) 설정하는 중입니다 ...
libcvsservice0 (4:3.5.8-0ubuntu1) 설정하는 중입니다 ...
libsvn1 (1.4.4dfsg1-1ubuntu3) 설정하는 중입니다 ...
kdevelop-data (4:3.5.0-0ubuntu2.1) 설정하는 중입니다 ...
kdevelop (4:3.5.0-0ubuntu2.1) 설정하는 중입니다 ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place
ldconfig deferred processing now taking place
주르르륵 알아서 설치해줍니다. 세상 참 많이 편해졌습니다. redhat 때 하나하나 rpm 패키지 찾아가며 의존성 찾아가며 설치했는데 말이죠^^. 그 때도 yum 인가 하는 업그레이드 툴로 편히 사용할 수 있었는지는 모르겠네요.
일단 설치가 완료되면 메뉴 -> 개발 -> KDevelop -> KDevelop: C/C++ IDE for C/C++ 를 선택하여 실행해 봅니다. Splash 창이 하나 뜨면서 로딩이 주르르륵 됩니다. 아하 이제 개발툴 은 환경이 되었군요. 그럼 아주 간단하게 설정은 되었네요. 첫 발걸음으로 역시나 "Hello World!"를 찍어 봅시다. KDevelop 화면에서 프로젝트 -> 뉴 프로젝트 -> C++ -> Simple Hello World Program 을 선택하여 봅시다. Application 이름은 원하시는 대로 적으시면 되겠죠?
그리고 완료를 누르시면 CVS, 등을 설정화면이 나오게 되고 그 것도 설정 하시면 다음과 같은 소스가 표시됩니다.
/***************************************************************************
* Copyright (C) 2008 by FilePointer,,, *
* filepointer@filepointer-desktop *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
* Copyright (C) 2008 by FilePointer,,, *
* filepointer@filepointer-desktop *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream>
#include <cstdlib>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
cout << "Hello, world!" << endl;
{
cout << "Hello, world!" << endl;
return EXIT_SUCCESS;
}
}
코드가 자동 생성 되는군요. 그런데 컴파일 키를 모릅니다!!. 메뉴를 보니 Build 메뉴에 Execute Program 이 Shift + F9 번키로 설정이 되어있군요. 키를 눌러봅니다!!
어!! 컴파일이 안되고 에러가 발생합니다.
cd '/home/filepointer/Hello' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make -f Makefile.cvs && mkdir '/home/filepointer/Hello/debug' && cd '/home/filepointer/Hello/debug' && CXXFLAGS="-O0 -g3" "/home/filepointer/Hello/configure" --enable-debug=full && cd '/home/filepointer/Hello/debug/./src' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make -k hello
aclocal
make: aclocal: 명령을 찾지 못했음
make: *** [all] 오류 127
*** Exited with status: 2 ***
aclocal
make: aclocal: 명령을 찾지 못했음
make: *** [all] 오류 127
*** Exited with status: 2 ***
에러의 원인은 aclocal 명령을 찾지 못한것이네요. 그럼 이 것도 설치를 해주어야 합니다. apt-get 신공 들어갑니다. 그런데 aclocal 을 apt-get 으로 해보니 꾸러미가 없답니다!! 그럼 무엇인지 모르겠습니다. 일단 aclocal 을 콘솔에서 쳐봅시다.
filepointer@filepointer-desktop:~$ aclocal
'aclocal' 프로그램은 다음 꾸러미들에서 찾을 수 있습니다:
* automake
* automake1.4
* automake1.7
* automake1.9
* automake1.8
다음을 실행해 보십시오: sudo apt-get install <선택한 꾸러미>
bash: aclocal: command not foun
'aclocal' 프로그램은 다음 꾸러미들에서 찾을 수 있습니다:
* automake
* automake1.4
* automake1.7
* automake1.9
* automake1.8
다음을 실행해 보십시오: sudo apt-get install <선택한 꾸러미>
bash: aclocal: command not foun
아하~ automake를 설치하면 되네요. 자자 에러의 원인을 알았으니. automake 설치에 들어갑시다~
filepointer@filepointer-desktop:~$ sudo apt-get install automake
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
Reading state information... 완료
다음 꾸러미를 더 설치할 것입니다:
autoconf autotools-dev m4
제안하는 꾸러미:
autoconf2.13 autobook autoconf-archive gnu-standards autoconf-doc
automake1.10-doc
추천하는 꾸러미:
automaken
다음 새 꾸러미를 설치할 것입니다:
autoconf automake autotools-dev m4
0개 업그레이드, 4개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
0바이트/1129k바이트 아카이브를 받아야 합니다.
압축을 풀면 3990k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
Reading state information... 완료
다음 꾸러미를 더 설치할 것입니다:
autoconf autotools-dev m4
제안하는 꾸러미:
autoconf2.13 autobook autoconf-archive gnu-standards autoconf-doc
automake1.10-doc
추천하는 꾸러미:
automaken
다음 새 꾸러미를 설치할 것입니다:
autoconf automake autotools-dev m4
0개 업그레이드, 4개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
0바이트/1129k바이트 아카이브를 받아야 합니다.
압축을 풀면 3990k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?
설치를 다한 다음 다시 KDevelop로 돌아가서 Shift + F9 를 눌러봅니다. 그런데 또 에러가 발생합니다. 잘 되는것 같더니 안되네요.
checking for C++ compiler default output file name...
configure: error: C++ compiler cannot create executables
See `config.log' for more details.
*** Exited with status: 77 ***
configure: error: C++ compiler cannot create executables
See `config.log' for more details.
*** Exited with status: 77 ***
에러가 발생 했는데 자세히 보고 싶으면 config.log 를 보랍니다. 에휴 뭐이리 문제점이 많답니까~ 그래도 어쩔수 있나요 급한 사람이 우물 판다고 보고 해결해야죠. config.log 파일을 열어봤더니 대충 에러의 원인이 파악됩니다.
configure:2300: g++ -v >&5
/home/filepointer/Hello/configure: line 2301: g++: command not found
configure:2303: $? = 127
/home/filepointer/Hello/configure: line 2301: g++: command not found
configure:2303: $? = 127
g++ 을 못찾는다고 하네요. 컴파일러가 없는 것입니다. 아뿔싸 껍데기만 존재했네요. 그럼 서둘러 설치해줍니다. sudo apt-get install build-essential 을 실행합시다. build-essential 은 빌드에 필요한 구성요소를 설치해주는 꾸러미입니다.
filepointer@filepointer-desktop:~$ sudo apt-get install build-essential
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
Reading state information... 완료
다음 꾸러미를 더 설치할 것입니다:
dpkg-dev g++ g++-4.1 libc6-dev libstdc++6-4.1-dev linux-libc-dev patch
제안하는 꾸러미:
debian-keyring g++-multilib g++-4.1-multilib gcc-4.1-doc glibc-doc
manpages-dev libstdc++6-4.1-doc diff-doc
다음 새 꾸러미를 설치할 것입니다:
build-essential dpkg-dev g++ g++-4.1 libc6-dev libstdc++6-4.1-dev
linux-libc-dev patch
0개 업그레이드, 8개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
3150k바이트/7417k바이트 아카이브를 받아야 합니다.
압축을 풀면 31.3M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
Reading state information... 완료
다음 꾸러미를 더 설치할 것입니다:
dpkg-dev g++ g++-4.1 libc6-dev libstdc++6-4.1-dev linux-libc-dev patch
제안하는 꾸러미:
debian-keyring g++-multilib g++-4.1-multilib gcc-4.1-doc glibc-doc
manpages-dev libstdc++6-4.1-doc diff-doc
다음 새 꾸러미를 설치할 것입니다:
build-essential dpkg-dev g++ g++-4.1 libc6-dev libstdc++6-4.1-dev
linux-libc-dev patch
0개 업그레이드, 8개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
3150k바이트/7417k바이트 아카이브를 받아야 합니다.
압축을 풀면 31.3M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?
하하하 Y 를 눌러 설치를 하고 KDevelop 에 다시 돌아가서 Shift + F9 키를 눌러봅니다! 결과물이 표시됩니다. "Hello World!" 잘 뜨는군요. 산을 조금 넘긴 넘었습니다. 콘솔은 간단하게 했는데 GUI도 해보고 싶어 지네요.내일 시간으로 한 번 해보는 게 좋을것 같습니다.
"Programming" 분류의 다른 글
| 한게임 자동테트리스 Ver 0.6 (22) | 2008/11/15 |
| 한게임 자동테트리스 Ver 0.2 (22) | 2008/11/03 |
| Read Sector From Floppy (0) | 2008/07/17 |
| 어제 무작정 맹글어봤던 것입니다.. (2) | 2008/07/16 |
| Com Control에서 Event 제작하기 (0) | 2008/07/10 |


댓글을 달아 주세요