제16장 QT/Embedded
목 차 QT/Embedded 개요 QT/Embedded 설치 QT/Embedded 어플리케이션 실행
QT/Embedded 의 개요 개요 i386, ARM, MIPS, PowerPC, MC68000 Trolltech사에서 개발 기본적으로 요구되는 메모리 사양은 1Mbytes ~ 5Mbytes지원 되는 플랫폼 : i386, ARM, MIPS, PowerPC, MC68000 Framebuffer를 지원하여 X11이 없어도 된다.
QT/Embedded 설치 QT/Embedded 설치 및 환경설정 - 다운로드 ftp://ftp.trolltech.com/qt/source - 압축을 푼다. $ tar xvfz qt-embedded-3.3.3.tar.bz2
QT/Embedded 설치 환경설정 host QTDIR : Qt가 설치되어 있는 디렉토리 LD_LIBRARY_PATH : Qt에서 사용하는 공유 라이브러리가 있는 디렉토리 ~/.bash_profile 에 추가 후, 적용 $ source ~/.bash_profile 실행 PATH=$PATH:$HOME/bin export QTDIR=/root/qt/qte-3.3.3 export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
QT/Embedded 설치 터치스크린 인식시키기 터치스크린 디바이스 노드 /dev/ts를 불러오도록 수정 /qte-3.3.3]# vi /src/embedded/qmouselinuxtp_qws.cpp
QT/Embedded 설치 Configuration Makefile 편집: all:symlinks src-qmake src-moc sub-src만 남기고 tools, exampes 등을 제거한다.
QT/Embedded 설치 Qt/Embedded Configuration configure 옵션 - 라이센스에 동의? yes $ ./configure –embedded ipaq –shared –depths 16 –thread -no-cups –qt-mouth-linuxtp configure 옵션 - shared : 공유라이브러리를 생성하고 사용할 때 - static : 정적라이브러리를 생성하고 사용할 때 - release : 배포시 - debug : 디버깅 정보 추가시 Configure 실행 - 라이센스에 동의? yes
QT/Embedded 설치 환경설정이 끝나면 Embedded ipaq용으로 설정했으니 맨 윗줄의build type에서 다음과 같이 나온다. Build on : qws/linux-x86-g++ Build for : qws/linux-ipaq-q++
QT/Embedded 설치 컴파일 라이브러리 설치 - 다운로드 파일:qt_libstdc++-3libc6.1.2.2.10.0.so - 다운받은 파일을 심볼릭 링크
QT/Embedded 설치 UIB, QVFB설치 웹사이트:http://www.hybus.ent /자료실/최신자료/에 있는 QT소스를 /root/qt에 다운 받는다. 파일의 실행 권한을 확인하고 실행권한 주기 /bin]# cp /root/qt/uic ./ /bin]# cp /root/qt/qvfb ./ /bin]# chmod u+x uic //실행 권한 주기 /bin]# chmod u+x qvfb //실행 권한 주기
QT/Embedded 설치 컴파일 실행 $ make 컴파일이 끝났으면 Qt/Embedded 라이브러리를 확인 $ cd $QTDIR/lib /lib] $ll /lib] $file libqte-mt.so.3.3.3 아래 4개 파일이 나오는지 확인
QT/Embedded 어플리케이션 실행 QT/Embedded 어플리케이션 컴파일 /root/qt-3.3.3/examples/hello/에 가서 hello 프로그램을 컴파일하여 타깃보드에 올린다. # make //컴파일 # file hello //file 명령으로 ARM 용으로 컴파일된 실행 파일을 확인한다. 'libqte-mt.so.3.3.3: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not
QT/Embedded 어플리케이션 실행 nfs 셋팅 컴파일한 qt-3.3.3 디렉토리와 /qt_libstdc++-3-libc6.1-2-10.0.so 를 타겟보드에서 마운트할 nfs 디렉토리로 복사한다. 이제 타겟보드에서마운트한다. 타겟보드의 QT/Embedded 환경 설정 export QTDIR=/mnt/nfs/qte-3.3.3 export LD_LIBRARY_PATH=/mnt/nfs/qte-3.3.3/lib:$LD_LIBRARY_PATH export QWS_MOUSE_PROTO=linuxtp:/dev/ts 위의 3개의 파일을 export 실켜준다.
QT/Embedded 어플리케이션 실행 ARM 라이브러리 설치 마운트 되어있는 /mnt/nfs/ qt_libstdc++-3-libc6.1-2-10.0.so를 심볼릭 링크한다.
QT/Embedded 어플리케이션 실행 예제 프로그램 실행 X-server 관련된 데몬을 전부 정지 시킨다. # kill -9 {x-server daemon} 이미 마운트 되어 있는 디렉토리로 이동하여 예제 프로그램을 실행한다. /root]$ cd /mnt/nfs/qte-3.3.3/examples/hello /hello]$ ./hello -qws 프로그램을 실행시키면 프레임버퍼 디바이스를 통해 LCD로 "Hello World"라고 출력 되면 성공이다.