qt-embedded-linux cross 컴파일
크로스 컴파일을 하기 위한 환경을 먼저 구성합니다.
다음의 위치에서 소스코드를 다운 받을 수 있습니다.
http://qt-project.org/downloads
위 사이트로 이동했다면 하단에 "Show Downloads" 버튼을 클릭해서
Qt libraries 4.8.6 for embedded Linux를 다운 받습니다.
이제부터는 아래 링크를 참조합니다.
export PATH=path/to/cross/compiler:$PATH
./configure -embedded arm -xplatform qws/linux-arm-g++ <other options>
나는 이렇게~~
./configure -v -opensource -confirm-license -prefix ~/qt4/qt-arm -embedded arm
make
make install
export QTDIR=/mnt/nfs/qt4/qt-arm
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
linux-7231dfb-mipsel-uclibc-g .tar.gz
==========================================================================
directFB를 통한 출력
[출처] : http://qtguru.blogspot.kr/2011/08/qt-embedded-directfb-graphical.html
Qt embedded 에서 DirectFB를 통한 Graphical 출력
Qt 4.8 버전 부터는 사용법이 간단하다.
Configure option에서
# configure "-qpa" ......
을 추가해서 Compile 한 후
# ./qt-application -platform directfb
라고 해주면 qt가 DirectFB를 통해서 출력된다.
하지만 Qt 4.7.x 버전대의 DirectFB를 통한 출력은 다음과 같다.
MyConfigure.sh
export QT_CFLAGS_DIRECTFB="-I/DirectFB설치된Path/include/directfb -D_REENTRANT"
export QT_LIBS_DIRECTFB="-L/DirectFB설치된Path/lib -ldirectfb -lfusion -ldirect -lpthread"
./configure -embedded mips/arm ....
반드시 확인해야할 사항은 -I"path"로 지정한 path에 direct.h가 존재하는지
-L"path"로 지정한 path에 libdirect-xx.xx-1.x.so.0.0 이나 libdirectfb-xx.xx-x.x.so 같은 파일이 존재 하는지 확인해야 한다.
만일 존재하지 않으면 qt compile시 DirectFBError / DirectFBErrorString 같은 것이 refer되지 않는다고 error 처리 된다.
실행시
# ./qt-application -qws -display directfb
와 같이 하면 되는데
실행시 qt rendering이 DirectFB를 통하여 출력되는 것은 stdout을 통하여서도 확인할 수 있다.