- 전체
- 안드로이드 플랫폼
- 아두이노
- 라즈베리 파이
- 안드로이드 ADK
- Embedded HardWare
- Embedded FirmWare
- Embedded Platform
- Embedded SoftWare
- 임베디드 리눅스
- Hobby Electronics
- 임베디드기사 - 국가기술자격
- VHDL 디지털설계
- M2M_IoT_사물지능통신
- 아마추어 로봇
- EDA - Electronic CAD
- 로봇공학
- 국가기술자격 로봇 제작 개발 자격증
- IoT (임베디드 인터넷)
Embedded SoftWare [QT] - 저의 QT Embedded 개발환경
2014.01.07 23:14
QT - 저의 QT Embedded 개발환경
[출처] http://forum.falinux.com/zbxe/index.php?document_srl=406324&mid=graphic
장길석 2007.09.09 16:31:55
QT를 처음 학습할 때에는 QT/X11, QT/Embedded, QTopia 모두 설치해야 되는 줄 알았습니다. 그리고 반드시 QVFB를 준비해야되는 줄 알았습니다. 그러다 보니 설치 방법이 복잡하고 시간이 많이 걸렸죠. 거기다가 QT/X11, QT/Embedded, QTopia 세가지 프로그램에 대해 궁합이 맞는 버전으로 설치하려고 다시 설치하기를 여러 번했습니다.
더욱 한심한 것은 타겟 보드에 QT 프로그램을 실행하기 위해서는 QTopia를 설치했을 때 생성되는 이미지 파일이 반드시 있어야만 되는 줄 알았습니다. 즉, QTopia의 이미지 파일을 타겟 보드에 복사해 주어야 QT로 작성된 프로그램이 실행되는 줄 알았습니다. 웹에 의존하다 보니 귀동량을 완전히 엉뚱하게 했습니다.
그러나 실제 타켓 보드에는 QT/Embedded를 설치하면 생성되는 lib 디렉토리의 파일만 복사해 주면 되기 때문에 저 같은 경우 QTopia가 필요 없고, 대신에 PC에서 디버깅 하기 위한 QT/X11과 임베디드 용으로 컴파일하기 위한 QT/Embedded만 필요했습니다.
제가 사용하는 QT/X11은 QT 3.x.x 버전인데, 최근 리눅스를 설치하면 선택하여 바로 설치가 가능하기 때문에 별 다른 어려움이 없습니다. 그러므로 실제 설치하는 것은 QT/Embedded 3.3.8 뿐입니다. 즉, 가장 간단한 방법이 되겠습니다.
QT/X11이 없으시다면 리눅스의 패키지 관리자를 이용하시면 쉽게 설치하실 수 있습니다.
필요 파일 다운로드
ftp.trolltech.com - /qt/source/qt-embedded-free-3.3.8.tar.gz
E2fsprogs Ext2 Filesystem Utilities - e2fsprogs-1.40.2.tar.gz
ftp.scarlet.be - pub/freeware/SOURCES/jwpg-6b.tar.gz
압축 풀기
저는 QT를 /qt에 설치합니다. 즉, QT/Embedded를 타켓 보드에 맞추어 /qt 밑에 생성합니다. QT arm용을
]# cd / <- root 디렉토리로 이동 ]# mkdir qt <- /qt/ 디렉토리 생성
]# cd /qt <- /qt/ 디렉토리로 이동
]# zxvf /download/qt-embedded-free-3.3.8.tar.gz
]# mv qt-embedded-free-3.3.8/ qte-3.3.8-arm
]# tar zxvf /download/e2fsprogs-1.40.2.tar.gz
]# tar zxvf /download/jpeg-6b.tar.gz
uuid, jepg 라이브러리 설치
arm 용 uuid 라이브러리 설치
]# cd /qt/e2fsprogs-1.40.2
]# ./configure --prefix=/usr/arm-linux --host=i386 --target=arm --enable-elf-shlibs --with-cc=arm-linux-gcc
]# make
]# make install
]# make install-libs
arm 용 jpeg 라이브러리 설치
]# cd /qt/jpeg-6b
]# ./configure
]# vi Makefile
아래의 내용을 수정합니다.
prefix = /usr -> prefix = /usr/arm-linux
CC = cc -> CC= arm-linux-gcc
AR = ar rc -> AR = arm-linux-ar rc
AR2 = ranlib -> RANLIB = arm-linux-ranlib
]# make
]# make install-lib 환경 파일 생성
]# cd /qt ]# vi .qte #!/bin/bash export QTDIR=/qt/qte-3.3.8-arm export PATH=$QTDIR/bin:$PATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
QT-Embedded 설치
]# source /qt/.qte
]# cd $QTDIR/bin
]# cp /usr/lib/qt-3.3/bin/uic .
]# cd ..
]# ./configure -embedded arm -system-jpeg -shared -thread -no-cups -no-ipv6 -qvfb -depths 16
라이센스에 yes
Building on: linux-x86-g++-shared
Building for: linux-arm-g++-shared
Thread support..................... no
Configuration...................... qconfig-qpe.h
]# make
:
Note: be sure to set $QTDIR to point to here or to wherever
you move these directories.
Enjoy! - the Trolltech team
make[1]: Leaving directory `/qt/qte-arm'
]# cd lib
]# file libqte.so.2.3.10
libqte.so.2.3.10: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped
-> 이렇게 ARM 용 파일이 만들어 졌다면 OK
arm용 qpe에서도 jpeg 와 uuid 라이브러리를 사용할 수 있도록 라이브러리를 복사합니다.
]# cp /usr/arm-linux/lib/libuuid.* .
]# cp /usr/arm-linux/lib/libjpeg.* .
]# cp /usr/arm-linux/lib/libstdc++.so.5 .
arm 보드에서 QT 프로그램 실행
arm 보드에서 /app/qt/lib로 QT/Embedded lib를 복사한다고 가정하겠습니다.
QT/Embedded의 lib 디렉토리를 통째로 타켓 보드에 복사하면 되는데, cp 명령을 사용하면 링크파일까지 일반 파일로 복사되기 때문에
용량이 무척 커지게 됩니다. 그러므로 반드시 tar를 이용하여 압축한 후에 타겟 보드에서 풀기를 합니다. ]# tar zcvf /공유폴더/qt-arm-lib.tar.gz /qt/qte-3.3.8-arm/lib 이제 arm-board 를 부팅하고 Host PC와 nfs로 연결합니다. [이 부분부터는 arm-board에서의 작업 내용입니다.] ]$ mount -t nfs -o nolock 192.168.10.50:/공유폴더 /mnt/nfs ]$ mkdir /app/qt ]$ cd /app/qt ]$ tar zxvf /mnt/nfs/qt-arm-lib.tar.gz QT 프로그램을 위해 환경 설정을 합니다. 또는 파일을 만들어 놓습니다.
]$ export QTDIR=/app/qt
]$ export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH Arm 보드에서 예제 프로그램 실행 보겠습니다. QT/Embedded가 설치된 디렉토리 안을 보시면 example/hello 디렉토리에 이미 hello 실행파일이 있습니다. 이 실행 파일을 공유 폴더에 복사한 후에 arm 보드에서 /mnt/nfs 디렉토리에서 직접 실행해 보십시오. ]$ /mnt/nfs/hello -qws
태그: *QT *그래픽
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 1 | KiCAD: Advanced Tutorials:Arduino UNO with KiCAD | 졸리운_곰 | 2017.08.02 | 582 |

