#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