22 Ekim 2008 Çarşamba

Qt Embeded 2.3.10 kurulumu

#Paketleri açıp, enviromental variables ı seeet ediyoruz(opt/dev klasörünün içine extract edilecek)
tar -xzvf tmake-1.13.tar.gz
tar -xzvf qt-x11-2.3.2.tar.gz
tar -xzvf qt-embedded-2.3.10-free.tar.gz
mv qt-2.3.10 qt-2.3.10-host
export TMAKEDIR=$PWD/tmake-1.13
export QT2DIR=$PWD/qt-2.3.2
export QTEDIR=$PWD/qt-2.3.10-host

#Bu aşamada gcc 4.x ile compile edebilmek için bazı patchler yapmamız lazım

/opt/qt-2.3.10/include/qwindowsystem_qws.h dosyasına
class QWSInputMethod;
class QWSGestureMethod; satırlarını ekleyeceğiz
#bunun dışında bir de(/opt/qt-2.3.2 için de aynı şey yapılacak)
qvaluestack.h içinde
remove( this->fromLast() ); satırı
this->remove( this->fromLast() ); olarak değişecek


#Build Qt2.3.2 Build Qt2.3.2

cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -no-xft
make
mkdir $QTEDIR/bin
cp bin/uic $QTEDIR/bin/

#Build Qvfb

export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
cd $QTEDIR/tools/qvfb
make clean
export PATH=/opt/dev/tmake-1.13/bin:$PATH
tmake -o Makefile qvfb.pro
make
mv qvfb $QTEDIR/bin/

#Build Qt/Embedded

cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -no-xft -qvfb -depths 4,8,16,32
make

#Run demo

export QTDIR=$QTEDIR
export PATH=$QTEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTEDIR/lib:$QT2DIR/lib:$LD_LIBRARY_PATH
cd $QTEDIR/examples/launcher
qvfb -width 640 -height 480 &
sleep 10
./launcher -qws

#Şimdi target için qt embedded i derleyeceğiz

tar -xzvf qt-embedded-2.3.10-free.tar.gz
mv qt-2.3.10 qt-2.3.10-target
export TMAKEDIR=$PWD/tmake-1.13
export QT2DIR=$PWD/qt-2.3.2
export QTEDIR=$PWD/qt-2.3.10-target
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
export PATH=/usr/local/arm/3.4/bin:$PATH
make

#burda epeyce bi hata verecek, tekrardan şu komutları çalışırıyoruz:

make clean
./configure -xplatform linux-arm-g++ -no-xft -no-qvfb -depths 4,8,16,32
make

#bundan sonra şu hataları verebilir:

/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new[](unsigned int)'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete(void*)'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `__cxa_pure_virtual'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator delete[](void*)'
/opt/dev/qt-2.3.10-target/lib/libqte.so: undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status

#bunlar şimdilik önemli değil, tmake de yapacağımız değişiklikle bunları çözeceğiz.
#şimdi /$QTEDIR/lib/ içindeki libqte.so* ları kartımızdaki /usr/lib klasörüne #kopyalayacağız.


#tmake düzenlemesi

$TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf dosyasındaki
“TMAKE_LINK= arm-linux-gcc”
“TMAKE_LINK_SHLIB= arm-linux-gcc” girişlerini
“TMAKE_LINK= arm-linux-g++”
“TMAKE_LINK_SHLIB= arm-linux-g++” olarak değiştir.

#executable oluşturma(demo)

cd /$QTEDIR/examples/progressbar
tmake -o Makefile progressbar.pro
make

#bu kadar...

Ek notlar: Export....,


target compile için çevresel değişkenler:

export TMAKEDIR=/opt/dev/tmake-1.13
export QT2DIR=/opt/dev/qt-2.3.2
export QTEDIR=/opt/dev/qt-2.3.10-target
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=/opt/dev/tmake-1.13/bin:$PATH
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/arm/3.4/bin:$PATH

host compile için çevresel değişkenler:

export TMAKEDIR=/opt/dev/tmake-1.13
export QT2DIR=/opt/dev/qt-2.3.2
export QTEDIR=/opt/dev/qt-2.3.10-host
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export PATH=/opt/dev/tmake-1.13/bin:$PATH
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

Hiç yorum yok: