kdevelop 사용하기
리눅스 2007. 6. 29. 11:34
정작 프로그램은 안만들고, 환경갖추는 삽질을 몇일째 하는지 모르겠습니다.
여하간에,
임베디드 리눅스 포팅할때는 vi외에는 마땅한 대안이 없지만, 포팅이 아닌 어플리케이션
개발위주인 경우에는 vi가 그다지 편리한 에디터는 아니지요. 열어야 할 쉘하며 등등..
개인적으로는 윈도우가 많이 퍼진 이유중에 하나로 편리한 개발툴에 있다고 봅니다.
그러다보니 귀차니즘 만땅인 제가 리눅스에서 쓸만한 IDE를 찾았는데 크게 KDE에는
KDevelop, Gnome에는 Anjuta가 있더군요. 그중에 Qt기반인 Kdevelop을 사용하기로
결정했습니다. KDevelop자체에 Qtopia어플 개발용 appwizard가 있습니다만, 그대로 사용하긴
힘든면도 있고, 다른 프로젝트를 선택해서 사용할때 역시 깔끔하게 사용하기가 힘든바,
나름대로 이래저래 바꿔서 쉽게 사용할수 있도록 해봤습니다. 도움이 되었으면 좋겠네요.
kdevelop-tmakesimple.tar.gz
저는 Gentoo Linux, KDevelop 3.2.1버전을 사용했으므로, 파일의 복사위치라던가 미묘하게
다를수 있읍니다.
1. 먼저 Kdevelop를 설정하기 전에 환경변수나 몇가지 스크립트 수정을 해야 합니다.
기본적인 개발환경은 악마천사님의 홈페이지를 기준으로 합니다.
- KDevelop에서 크로스컴파일 설정을 위한 심볼릭 링크 추가
gentoo Qtopia # cd ~
gentoo ~ # cd /opt/Qtopia
gentoo Qtopia # ln -sf . x86
gentoo Qtopia # cd /opt/Qtopia/tmake/lib/qws
gentoo qws # ln -sf linux-sharp-g++ sharp
gentoo qws # ln -sf linux-x86-g++ x86
--------------------------------------------------------------------------------
데스크탑에 gcc 3.x가 설치되어 있는경우, x86용으로 컴파일할때 라이브러리 문제로
에러가 발생할수 있으므로, gcc 2.95를 설치 해야 하는데, 시스템에 여러버전의 gcc가
있는 경우, TMAKEPATH를 linux-x86-g++ 로 지정하면, 컴파일할때 2.95가 아닌 다른
버전이 불러질수가 있으므로, tmake.conf를 수정해줍니다. 자신의 데스크탑용 기본
gcc가 2.95라면 아래는 해줄필요가 없습니다.
- tmake.conf 수정하기
gentoo x86 # pwd
/opt/Qtopia/tmake/lib/qws/x86
gentoo x86 # vi tmake.conf
파일을 보시면 TMAKE_CC, TMAKE_CXX, TMAKE_LINK, TMAKE_SHLIB항목에
gcc, g++만 되어 있는데 이 앞에 적절한 패스를 추가해주면 되겠죠. 저의 경우는,
TMAKE_CC = /usr/i686-pc-linux-gnu/gcc-bin/2.95/gcc
로 고쳤습니다.
---------------------------------------------------------------------------
KDevelop에서 pro파일은 잘 만들어주지만, Makefile을 만들땐, tmake aaa.pro로
실행을 해서, 만들어질 Makefile이 화면으로 출력이 됩니다. -o옵션을 주려고 찾아
봤으나, 해당 내용이 별도의 config파일 형태로 되어있는게 아니라, libkdevtrollproject.so파일에
들어가 있기 때문에, tmake를 -o Makefile옵션을 안줘도 출력을 파일로 할수 있게
수정이 필요합니다. tmake는 perl 스크립트로 되어 있습니다.
- tmake 수정하기
gentoo / # cd /opt/Qtopia/tmake/bin
gentoo bin # vi tmake
제가 사용하는 tmake 버전이 1.8이라, 다른 버전은 자세히 모르겠습니다만,
첫번째 while문을 찾으신다음에, 두번째 else를 찾으셔서 else문 아래에
->로 된 문장을 끼워넣으시면 됩니다. 저의 경우는 140번째 라인이었습니다.
Project( $arg ); # manual project setting
} else {
-> $project{"OUTFILE"} = "Makefile";
-> $outfile = "Makefile";
-> open(STDOUT,">" . &fix_path($outfile)) ||
-> &tmake_error("Cannot create \"$outfile\": $!");
my($pf) = $_;
if ( ! $read_tmakeconf ) {
*perl사용안한지도 오래됐고 귀찮아서 그냥 저렇게 처리했습니다. 아마 tmake시에
에러가 나와도 파일로 저장되지 않겠나 싶습니다. -_-;
------------------------------------------------------------------------------
이상 환경변수들은 수정 완료입니다.
2. KDE와 KDevelop 에 qvfb 추가하기
KDE에서 Settings메뉴에 Menu Editor 를 실행해서 아래와 같이 qvfb실행 메뉴를 추가해줍니다.
KDevelop를 실행해서, Settings메뉴에 Configure KDevelop를 선택한후, External Tools를 선택,
옆의 Add버튼을 누른후 QVFB를 선택하고, 파라미터에 적당한 값을 넣은후, OK버튼을 누릅니다.
그러면 Tools메뉴에서 바로 QVFB를 실행할수 있습니다.
3. 이제 KDevelop을 실행한뒤에 프로젝트를 만들어야 합니다. 그런데, KDevelop기본
APPWizard (Project를 만들때 적절한 템플릿을 만들어주는)에는 TMake관련 프로젝트가
있긴 한데 잘 안되더군요. Qtopia도 마찬가지구요.
그러므로 제가 만든 템플릿을 추가, 사용해보도록 하겠습니다.
kdevelop-tmakesimple.tar.gz 파일의 압축을 풀면 2개의 파일이 나옵니다.
tmakesimple.kdevtemplate 파일은 /usr/share/apps/kdevappwizard/templates 에 복사하고,
tmakesimple.tar.gz파일은 /usr/share/apps/kdevappwizard 에 복사 하시면 됩니다.
그뒤 KDevelop를 실행하신후, 메뉴의 Project->New Project를 하셔서 아래 그림을 보시면,
TMake ... for Zaurus가 나옵니다.
이 프로젝트를 선택하셔서 진행해 보시면, 아래의 화면이 나옵니다.
제가 올린 템플릿은 -lqte만 붙여주기때문에 qpe라이브러리를 사용하신다면 -lqpe를 붙여줍니다.
오른쪽 QMake Manager를 누르면 나오는 창에서 Subprojects에 우측버튼 혹은 그 위 오른쪽의
아이콘을 눌러서, Subproject Settings를 선택합니다. 그리고 Libraries 탭에 아래와 같이 -lqpe를 추가합니다.
pthread, sdl등도 마찬가지로 여기서 넣으시면 되겠죠.
자 이제, 만들고자 하는 바이너리를 선택해야 겠죠?
KDevelop는 프로젝트 템플릿에 따라 크로스컴파일을 지원하기도 안하기도 하며, Makefile의 환경변수 설정도
역시 다중으로 혹은 하나만 사용이 가능합니다. 이 부분은 템플릿에 대한 연구가 필요한데, 저는 그냥
편법으로 해결했습니다. Project메뉴에 Project Options메뉴를 클릭하고, Make Options를 클릭하면
이미 제가 설정한 환경변수등이 들어가 있습니다. 여기서 BASE에 있는 값에 따라 바이너리가 달라지는데,
x86으로 넣으면 x86, sharp로 넣으면 자울용 바이너리가 만들어집니다. 자세히 보시면 아시겠지만,
심볼릭링크를 이용해서 편법으로 만들었습니다. 혹시 자신이 사용하는 디렉토리가 다르다면, 적절히 수정하실
필요가 있습니다. 혹은 제가 올린 템플릿 파일을 수정하시면 다른 프로젝트 생성때도 수정이 필요없겠죠.
당연히 이 BASE값을 바꾸면 항상 run qmake메뉴를 선택해서 Makefile을 다시 만들어고 Clean Project를
다시 해주셔야 합니다. (Project메뉴)
그리고 Make Options위에 Run Options를 보시면 Program arguments에 -qws와 LD_LIBRARY_PATH가
디폴트로 지정되어있습니다. 어차피 자울용은 실행이 안되니 그대로 두시면 될겁니다.
이제 Makefile을 만들어야 합니다. 오른쪽 Subprojects에서 오른쪽 버튼을 누르시면, Run qmake가 나옵니다.
이것을 선택하면 아래와 같이 tmake가 실행되고 우리가 tmake파일을 수정했기 때문에 -o옵션 없이도
Makefile이 만들어집니다.
이제 빌드메뉴에서 Build Project를 하면, 바이너리가 생성됩니다.
x86 컴파일 화면입니다.
sharp 컴파일 화면입니다.
컴파일이 완료되면, Tools메뉴에 QVFB실행 메뉴가 생겨 있습니다. 그걸 클릭하면 QVFB가 실행됩니다.
이제 KDevelop에서 빌드 메뉴의 Execute Main Program을 실행하시면 qvfb에 프로그램이 뜹니다.
이제 Visual Studio만큼이나 편하게 개발이 가능할겁니다.~~ 많은 도움이 됐으면 좋겠습니다.

여하간에,
임베디드 리눅스 포팅할때는 vi외에는 마땅한 대안이 없지만, 포팅이 아닌 어플리케이션
개발위주인 경우에는 vi가 그다지 편리한 에디터는 아니지요. 열어야 할 쉘하며 등등..
개인적으로는 윈도우가 많이 퍼진 이유중에 하나로 편리한 개발툴에 있다고 봅니다.
그러다보니 귀차니즘 만땅인 제가 리눅스에서 쓸만한 IDE를 찾았는데 크게 KDE에는
KDevelop, Gnome에는 Anjuta가 있더군요. 그중에 Qt기반인 Kdevelop을 사용하기로
결정했습니다. KDevelop자체에 Qtopia어플 개발용 appwizard가 있습니다만, 그대로 사용하긴
힘든면도 있고, 다른 프로젝트를 선택해서 사용할때 역시 깔끔하게 사용하기가 힘든바,
나름대로 이래저래 바꿔서 쉽게 사용할수 있도록 해봤습니다. 도움이 되었으면 좋겠네요.
kdevelop-tmakesimple.tar.gz
저는 Gentoo Linux, KDevelop 3.2.1버전을 사용했으므로, 파일의 복사위치라던가 미묘하게
다를수 있읍니다.
1. 먼저 Kdevelop를 설정하기 전에 환경변수나 몇가지 스크립트 수정을 해야 합니다.
기본적인 개발환경은 악마천사님의 홈페이지를 기준으로 합니다.
- KDevelop에서 크로스컴파일 설정을 위한 심볼릭 링크 추가
gentoo Qtopia # cd ~
gentoo ~ # cd /opt/Qtopia
gentoo Qtopia # ln -sf . x86
gentoo Qtopia # cd /opt/Qtopia/tmake/lib/qws
gentoo qws # ln -sf linux-sharp-g++ sharp
gentoo qws # ln -sf linux-x86-g++ x86
--------------------------------------------------------------------------------
데스크탑에 gcc 3.x가 설치되어 있는경우, x86용으로 컴파일할때 라이브러리 문제로
에러가 발생할수 있으므로, gcc 2.95를 설치 해야 하는데, 시스템에 여러버전의 gcc가
있는 경우, TMAKEPATH를 linux-x86-g++ 로 지정하면, 컴파일할때 2.95가 아닌 다른
버전이 불러질수가 있으므로, tmake.conf를 수정해줍니다. 자신의 데스크탑용 기본
gcc가 2.95라면 아래는 해줄필요가 없습니다.
- tmake.conf 수정하기
gentoo x86 # pwd
/opt/Qtopia/tmake/lib/qws/x86
gentoo x86 # vi tmake.conf
파일을 보시면 TMAKE_CC, TMAKE_CXX, TMAKE_LINK, TMAKE_SHLIB항목에
gcc, g++만 되어 있는데 이 앞에 적절한 패스를 추가해주면 되겠죠. 저의 경우는,
TMAKE_CC = /usr/i686-pc-linux-gnu/gcc-bin/2.95/gcc
로 고쳤습니다.
---------------------------------------------------------------------------
KDevelop에서 pro파일은 잘 만들어주지만, Makefile을 만들땐, tmake aaa.pro로
실행을 해서, 만들어질 Makefile이 화면으로 출력이 됩니다. -o옵션을 주려고 찾아
봤으나, 해당 내용이 별도의 config파일 형태로 되어있는게 아니라, libkdevtrollproject.so파일에
들어가 있기 때문에, tmake를 -o Makefile옵션을 안줘도 출력을 파일로 할수 있게
수정이 필요합니다. tmake는 perl 스크립트로 되어 있습니다.
- tmake 수정하기
gentoo / # cd /opt/Qtopia/tmake/bin
gentoo bin # vi tmake
제가 사용하는 tmake 버전이 1.8이라, 다른 버전은 자세히 모르겠습니다만,
첫번째 while문을 찾으신다음에, 두번째 else를 찾으셔서 else문 아래에
->로 된 문장을 끼워넣으시면 됩니다. 저의 경우는 140번째 라인이었습니다.
Project( $arg ); # manual project setting
} else {
-> $project{"OUTFILE"} = "Makefile";
-> $outfile = "Makefile";
-> open(STDOUT,">" . &fix_path($outfile)) ||
-> &tmake_error("Cannot create \"$outfile\": $!");
my($pf) = $_;
if ( ! $read_tmakeconf ) {
*perl사용안한지도 오래됐고 귀찮아서 그냥 저렇게 처리했습니다. 아마 tmake시에
에러가 나와도 파일로 저장되지 않겠나 싶습니다. -_-;
------------------------------------------------------------------------------
이상 환경변수들은 수정 완료입니다.
2. KDE와 KDevelop 에 qvfb 추가하기
KDE에서 Settings메뉴에 Menu Editor 를 실행해서 아래와 같이 qvfb실행 메뉴를 추가해줍니다.

KDevelop를 실행해서, Settings메뉴에 Configure KDevelop를 선택한후, External Tools를 선택,
옆의 Add버튼을 누른후 QVFB를 선택하고, 파라미터에 적당한 값을 넣은후, OK버튼을 누릅니다.
그러면 Tools메뉴에서 바로 QVFB를 실행할수 있습니다.

3. 이제 KDevelop을 실행한뒤에 프로젝트를 만들어야 합니다. 그런데, KDevelop기본
APPWizard (Project를 만들때 적절한 템플릿을 만들어주는)에는 TMake관련 프로젝트가
있긴 한데 잘 안되더군요. Qtopia도 마찬가지구요.
그러므로 제가 만든 템플릿을 추가, 사용해보도록 하겠습니다.
kdevelop-tmakesimple.tar.gz 파일의 압축을 풀면 2개의 파일이 나옵니다.
tmakesimple.kdevtemplate 파일은 /usr/share/apps/kdevappwizard/templates 에 복사하고,
tmakesimple.tar.gz파일은 /usr/share/apps/kdevappwizard 에 복사 하시면 됩니다.
그뒤 KDevelop를 실행하신후, 메뉴의 Project->New Project를 하셔서 아래 그림을 보시면,
TMake ... for Zaurus가 나옵니다.

이 프로젝트를 선택하셔서 진행해 보시면, 아래의 화면이 나옵니다.

제가 올린 템플릿은 -lqte만 붙여주기때문에 qpe라이브러리를 사용하신다면 -lqpe를 붙여줍니다.
오른쪽 QMake Manager를 누르면 나오는 창에서 Subprojects에 우측버튼 혹은 그 위 오른쪽의
아이콘을 눌러서, Subproject Settings를 선택합니다. 그리고 Libraries 탭에 아래와 같이 -lqpe를 추가합니다.
pthread, sdl등도 마찬가지로 여기서 넣으시면 되겠죠.

자 이제, 만들고자 하는 바이너리를 선택해야 겠죠?
KDevelop는 프로젝트 템플릿에 따라 크로스컴파일을 지원하기도 안하기도 하며, Makefile의 환경변수 설정도
역시 다중으로 혹은 하나만 사용이 가능합니다. 이 부분은 템플릿에 대한 연구가 필요한데, 저는 그냥
편법으로 해결했습니다. Project메뉴에 Project Options메뉴를 클릭하고, Make Options를 클릭하면
이미 제가 설정한 환경변수등이 들어가 있습니다. 여기서 BASE에 있는 값에 따라 바이너리가 달라지는데,
x86으로 넣으면 x86, sharp로 넣으면 자울용 바이너리가 만들어집니다. 자세히 보시면 아시겠지만,
심볼릭링크를 이용해서 편법으로 만들었습니다. 혹시 자신이 사용하는 디렉토리가 다르다면, 적절히 수정하실
필요가 있습니다. 혹은 제가 올린 템플릿 파일을 수정하시면 다른 프로젝트 생성때도 수정이 필요없겠죠.
당연히 이 BASE값을 바꾸면 항상 run qmake메뉴를 선택해서 Makefile을 다시 만들어고 Clean Project를
다시 해주셔야 합니다. (Project메뉴)

그리고 Make Options위에 Run Options를 보시면 Program arguments에 -qws와 LD_LIBRARY_PATH가
디폴트로 지정되어있습니다. 어차피 자울용은 실행이 안되니 그대로 두시면 될겁니다.

이제 Makefile을 만들어야 합니다. 오른쪽 Subprojects에서 오른쪽 버튼을 누르시면, Run qmake가 나옵니다.
이것을 선택하면 아래와 같이 tmake가 실행되고 우리가 tmake파일을 수정했기 때문에 -o옵션 없이도
Makefile이 만들어집니다.

이제 빌드메뉴에서 Build Project를 하면, 바이너리가 생성됩니다.
x86 컴파일 화면입니다.

sharp 컴파일 화면입니다.

컴파일이 완료되면, Tools메뉴에 QVFB실행 메뉴가 생겨 있습니다. 그걸 클릭하면 QVFB가 실행됩니다.
이제 KDevelop에서 빌드 메뉴의 Execute Main Program을 실행하시면 qvfb에 프로그램이 뜹니다.

이제 Visual Studio만큼이나 편하게 개발이 가능할겁니다.~~ 많은 도움이 됐으면 좋겠습니다.
'리눅스' 카테고리의 다른 글
jateon - 자바로 구현된 nateon (0) | 2007.08.10 |
---|---|
[디바이스] create_proc_entry() 함수 (0) | 2007.07.12 |
pkg-config ? (0) | 2007.06.27 |
grdesktop에서 한영키 사용하기 (0) | 2007.05.09 |
[nfs] 정리 (0) | 2007.05.08 |