Programming/QT

qt-embedded-linux cross 컴파일

_Erato 2014. 10. 20. 17:53

크로스 컴파일을 하기 위한 환경을 먼저 구성합니다.

다음의 위치에서 소스코드를 다운 받을 수 있습니다.

http://qt-project.org/downloads

위 사이트로 이동했다면 하단에 "Show Downloads" 버튼을 클릭해서 

Qt libraries 4.8.6 for embedded Linux를 다운 받습니다.


이제부터는 아래 링크를 참조합니다.

Qt cross compiling

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.sh

export QTDIR=/mnt/nfs/qt4/qt-arm

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QT_QWS_FONTDIR=$QTDIR/lib/fonts




bcm7231b0.env


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을 통하여서도 확인할 수 있다.